Skip to content

Commit ae75f5a

Browse files
authored
#866 Language element supports unknown values (#1478)
1 parent a78d4d9 commit ae75f5a

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

library/Application/Form/Element/Language.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ public function setValue($value)
6969
}
7070
}
7171

72+
if (! in_array($value, array_keys(self::getLanguageList()))) {
73+
$label = Locale::getDisplayName($value);
74+
if ($label !== $value) {
75+
$label .= " ({$value})";
76+
}
77+
$this->addMultiOption($value, $label);
78+
}
79+
7280
parent::setValue($value);
7381
}
7482

tests/library/Application/Form/Element/LanguageTest.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ public function testAutoMapValueToLanguageId()
104104

105105
public function testUnknownLanguage()
106106
{
107-
$this->markTestIncomplete();
107+
$language = $this->getElement();
108+
$langCode = 'cmn';
109+
110+
$language->setValue($langCode);
111+
$this->assertEquals($langCode, $language->getValue());
112+
$this->assertTrue($language->isValid($langCode));
108113
}
109114
}

0 commit comments

Comments
 (0)