37 ->expects($this->any())
39 ->willReturn(
'dummy');
42 ->expects($this->any())
43 ->method(
'getInstalledLanguages')
44 ->willReturn([$this->expectedAfterFormSubmitValue, $this->expectedInitialValue]);
52 return new \ilTermsOfServiceUserHasLanguageCriterion();
62 $this->assertEquals(
'usr_language', $criterion->getTypeIdent());
63 $this->assertEquals(
true, $criterion->hasUniqueNature());
75 string $httpCriterionSelectionBodyParameter
82 ->expects($this->any())
83 ->method(
'getPostVar')
84 ->willReturn($httpCriterionSelectionBodyParameter);
86 $form->addItem($radioGroup);
100 $httpCriterionSelectionBodyParameter =
'criterion';
101 $httpCriterionConfigBodyParameter = $criterion->
getTypeIdent() .
'_lng';
103 $gui = $criterion->
ui($this->lng);
105 $this->assertInstanceOf(\ilTermsOfServiceUserHasLanguageCriterionGUI::class, $gui);
107 $form = $this->buildForm($gui, $httpCriterionSelectionBodyParameter);
109 $languageSelection =
$form->getItemByPostVar($httpCriterionConfigBodyParameter);
110 $this->assertInstanceOf(\ilSelectInputGUI::class, $languageSelection);
111 $this->assertEquals($languageSelection->getValue(), $this->expectedInitialValue);
122 $httpCriterionSelectionBodyParameter =
'criterion';
123 $httpCriterionConfigBodyParameter = $criterion->
getTypeIdent() .
'_lng';
125 $gui = $criterion->
ui($this->lng);
127 $form = $this->buildForm($gui, $httpCriterionSelectionBodyParameter);
130 ->expects($this->
once())
132 ->with($httpCriterionConfigBodyParameter)
133 ->will($this->returnCallback(
function () {
134 return $this->expectedAfterFormSubmitValue;
139 $this->assertInstanceOf(\ilTermsOfServiceCriterionConfig::class, $value);
140 $this->assertEquals($this->expectedAfterFormSubmitValue, $value[
'lng']);
141 $this->assertEquals($this->getCriterionConfig([
'lng' => $this->expectedAfterFormSubmitValue]), $value);
150 $gui = $criterion->
ui($this->lng);
154 $this->assertInternalType(
'string', $actual);
155 $this->assertNotEmpty($actual);
164 [$this->expectedInitialValue, $this->englishLanguageTranslation],
165 [$this->expectedAfterFormSubmitValue, $this->germanLanguageTranslation],
175 public function testValuePresentationMatchesExpectation(
string $lng,
string $translation)
180 ->expects($this->any())
182 ->with(
'meta_l_' .
$lng,
'')
183 ->willReturn($translation);
186 $criterion = new \ilTermsOfServiceUserHasLanguageCriterion();
191 $this->getCriterionConfig([
'lng' =>
$lng]),
192 $this->dic->ui()->factory()
195 $this->assertInstanceOf(Component::class, $actual);
196 $this->assertInstanceOf(Legacy::class, $actual);
197 $this->assertEquals($translation, $actual->getContent());
205 $criterion = $this->getInstance();
208 [$criterion, $this->getCriterionConfig([
'lng' =>
'en'])],
209 [$criterion, $this->getCriterionConfig([
'lng' => []])],
210 [$criterion, $this->getCriterionConfig([
'lng' =>
new stdClass()])],
211 [$criterion, $this->getCriterionConfig([
'lng' => 1.0])],
212 [$criterion, $this->getCriterionConfig([
'lng' => 1])],
213 [$criterion, $this->getCriterionConfig([
'another_config_key' =>
true])],
214 [$criterion, $this->getCriterionConfig()],
223 $criterion = $this->getInstance();
226 [$criterion, $this->getCriterionConfig([
'lng' =>
'de'])],
227 [$criterion, $this->getCriterionConfig([
'lng' =>
'DE'])],
240 $user = $this->getUserMock();
243 ->expects($this->any())
244 ->method(
'getLanguage')
259 $user = $this->getUserMock();
262 ->expects($this->any())
263 ->method(
'getLanguage')
An exception for terminatinating execution or to throw for unit testing.
getCriterionConfig($value=null)
Class ilTermsOfServiceCriterionBaseTest.
Class ilTermsOfServiceCriterionConfig.
Class ilTermsOfServiceUserHasLanguageCriterionTest.
succeedingConfigProvider()
buildForm(\ilTermsOfServiceCriterionTypeGUI $gui, string $httpCriterionSelectionBodyParameter)
$englishLanguageTranslation
$expectedAfterFormSubmitValue
$germanLanguageTranslation
testFormUserInterfaceElementsAreProperlyBuilt(\ilTermsOfServiceUserHasLanguageCriterion $criterion)
testValuesFromFormUserInterfaceElementsCanBeRetrieved(\ilTermsOfServiceUserHasLanguageCriterion $criterion)
@depends testFormUserInterfaceElementsAreProperlyBuilt
testInstanceCanBeCreated()
testTypeIdentPresentationIsANonEmptyString(\ilTermsOfServiceUserHasLanguageCriterion $criterion)
@depends testFormUserInterfaceElementsAreProperlyBuilt
testEvaluationFailsIfUserLanguageDoesNotMatchDefinedLanguage(\ilTermsOfServiceUserHasLanguageCriterion $criterion, \ilTermsOfServiceCriterionConfig $config)
testEvaluationSucceedsIfUserLanguageDoesMatchDefinedLanguage(\ilTermsOfServiceUserHasLanguageCriterion $criterion, \ilTermsOfServiceCriterionConfig $config)
Class ilTermsOfServiceUserHasLanguageCriterion.
evaluate(\ilObjUser $user, \ilTermsOfServiceCriterionConfig $config)
bool
ui(\ilLanguage $lng)
\ilTermsOfServiceCriterionTypeGUI
getTypeIdent()
Returns a unique id of the criterion type.string
A component is the most general form of an entity in the UI.
Interface ilTermsOfServiceCriterionTypeGUI.
appendOption(\ilRadioGroupInputGUI $option, \ilTermsOfServiceCriterionConfig $config)
getValuePresentation(\ilTermsOfServiceCriterionConfig $config, Factory $uiFactory)
getConfigByForm(\ilPropertyFormGUI $form)
once($eventName, callable $callBack, $priority=100)
Subscribe to an event exactly once.
if(isset($_POST['submit'])) $form