From 8c95642e0fe8402fced4c300f1ecac38debd6b02 Mon Sep 17 00:00:00 2001
From: Hanne Moa <hanne.moa@uninett.no>
Date: Tue, 15 Nov 2016 12:21:16 +0100
Subject: [PATCH] Fix tests depending on Language->language_names

---
 tests/lib/SimpleSAML/Locale/LanguageTest.php | 62 +++++++++++++-------
 1 file changed, 42 insertions(+), 20 deletions(-)

diff --git a/tests/lib/SimpleSAML/Locale/LanguageTest.php b/tests/lib/SimpleSAML/Locale/LanguageTest.php
index d6e6c815e..7072a4930 100644
--- a/tests/lib/SimpleSAML/Locale/LanguageTest.php
+++ b/tests/lib/SimpleSAML/Locale/LanguageTest.php
@@ -20,11 +20,11 @@ class LanguageTest extends \PHPUnit_Framework_TestCase
 
         // test defaults coming from configuration
         $c = \SimpleSAML_Configuration::loadFromArray(array(
-            'language.available' => array('xx', 'yy', 'zz'),
-            'language.default' => 'yy',
+            'language.available' => array('en', 'es', 'nn'),
+            'language.default' => 'es',
         ));
         $l = new Language($c);
-        $this->assertEquals('yy', $l->getDefaultLanguage());
+        $this->assertEquals('es', $l->getDefaultLanguage());
     }
 
 
@@ -44,39 +44,61 @@ class LanguageTest extends \PHPUnit_Framework_TestCase
 
         // test that it works with non-defaults
         \SimpleSAML_Configuration::loadFromArray(array(
-            'language.available' => array('xx', 'yy', 'zz'),
+            'language.available' => array('en', 'es', 'nn'),
             'language.cookie.name' => 'xyz'
         ), '', 'simplesaml');
-        $_COOKIE['xyz'] = 'Yy'; // test values are converted to lowercase too
-        $this->assertEquals('yy', Language::getLanguageCookie());
+        $_COOKIE['xyz'] = 'Es'; // test values are converted to lowercase too
+        $this->assertEquals('es', Language::getLanguageCookie());
     }
 
 
     /**
      * Test SimpleSAML\Locale\Language::getLanguageList().
      */
-    public function testGetLanguageList()
+    public function testGetLanguageListNoConfig()
     {
         // test defaults
         $c = \SimpleSAML_Configuration::loadFromArray(array(), '', 'simplesaml');
         $l = new Language($c);
         $l->setLanguage('en');
         $this->assertEquals(array('en' => true), $l->getLanguageList());
+    }
+
 
-        // test non-defaults
+    /**
+     * Test SimpleSAML\Locale\Language::getLanguageList().
+     */
+    public function testGetLanguageListCorrectConfig()
+    {
+        // test langs from from language_names
         $c = \SimpleSAML_Configuration::loadFromArray(array(
-            'language.available' => array('xx', 'yy', 'zz'),
+            'language.available' => array('en', 'nn', 'es'),
         ), '', 'simplesaml');
         $l = new Language($c);
-        $l->setLanguage('yy');
+        $l->setLanguage('es');
         $this->assertEquals(array(
-            'xx' => false,
-            'yy' => true,
-            'zz' => false,
+            'en' => false,
+            'es' => true,
+            'nn' => false,
         ), $l->getLanguageList());
     }
 
 
+    /**
+     * Test SimpleSAML\Locale\Language::getLanguageList().
+     */
+    public function testGetLanguageListIncorrectConfig()
+    {
+        // test non-existent langs
+        $c = \SimpleSAML_Configuration::loadFromArray(array(
+            'language.available' => array('foo', 'bar'),
+        ), '', 'simplesaml');
+        $l = new Language($c);
+        $l->setLanguage('foo');
+        $this->assertEquals(array('en' => true), $l->getLanguageList());
+    }
+
+
     /**
      * Test SimpleSAML\Locale\Language::getLanguageParameterName().
      */
@@ -109,7 +131,7 @@ class LanguageTest extends \PHPUnit_Framework_TestCase
 
         // test non-defaults, non-RTL
         $c = \SimpleSAML_Configuration::loadFromArray(array(
-            'language.rtl' => array('xx', 'yy', 'zz'),
+            'language.rtl' => array('foo', 'bar'),
         ), '', 'simplesaml');
         $l = new Language($c);
         $l->setLanguage('en');
@@ -117,11 +139,11 @@ class LanguageTest extends \PHPUnit_Framework_TestCase
 
         // test non-defaults, RTL
         $c = \SimpleSAML_Configuration::loadFromArray(array(
-            'language.available' => array('xx', 'yy', 'zz', 'en'),
-            'language.rtl' => array('xx', 'yy'),
+            'language.available' => array('en', 'nn', 'es'),
+            'language.rtl' => array('nn', 'es'),
         ), '', 'simplesaml');
         $l = new Language($c);
-        $l->setLanguage('yy');
+        $l->setLanguage('es');
         $this->assertTrue($l->isLanguageRTL());
     }
 
@@ -133,13 +155,13 @@ class LanguageTest extends \PHPUnit_Framework_TestCase
     {
         // test with valid configuration, no cookies set
         $c = \SimpleSAML_Configuration::loadFromArray(array(
-            'language.available' => array('xx', 'yy', 'zz'),
+            'language.available' => array('en', 'nn', 'es'),
             'language.parameter.name' => 'xyz',
             'language.parameter.setcookie' => false,
         ), '', 'simplesaml');
-        $_GET['xyz'] = 'Zz'; // test also that lang code is transformed to lower caps
+        $_GET['xyz'] = 'Es'; // test also that lang code is transformed to lower caps
         $l = new Language($c);
-        $this->assertEquals('zz', $l->getLanguage());
+        $this->assertEquals('es', $l->getLanguage());
 
         // test with valid configuration, no cookies, language set unavailable
         $_GET['xyz'] = 'unavailable';
-- 
GitLab