From 15275461e9e267ca03d639d66d3dc053f339bae4 Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Wed, 27 Jan 2010 06:58:15 +0000 Subject: [PATCH] Break up tests so problems are easier to track down. --- tests/LanguageConverterTest.php | 78 +++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/tests/LanguageConverterTest.php b/tests/LanguageConverterTest.php index e3c9be2908..63d1cf09bb 100644 --- a/tests/LanguageConverterTest.php +++ b/tests/LanguageConverterTest.php @@ -7,8 +7,12 @@ class LanguageConverterTest extends PHPUnit_Framework_TestCase { protected $lc = null; function setUp() { - global $wgMemc; + global $wgMemc, $wgRequest, $wgUser, $wgContLang; + + $wgUser = new User; + $wgRequest = new FauxRequest(array()); $wgMemc = new FakeMemCachedClient; + $wgContLang = Language::factory( 'tg' ); $this->lang = new LanguageTest(); $this->lc = new TestConverter( $this->lang, 'tg', array( 'tg', 'tg-latn' ) ); @@ -21,92 +25,100 @@ class LanguageConverterTest extends PHPUnit_Framework_TestCase { unset($this->lang); } - function testGetPreferredVariant() { - global $wgRequest, $wgUsePathInfo, $wgLanguageCode, - $wgVariantArticlePath, $wgUser, $wgContLang, - $wgDefaultLanguageVariant; - - $wgRequest = new FauxRequest(array()); - $wgUser = new User; - $wgContLang = Language::factory( 'tg' ); - + function testGetPreferredVariantDefaults() { $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); + } + function testGetPreferredVariantHeaders() { + global $wgRequest; $wgRequest->setHeader('Accept-Language', 'tg-latn'); - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); + $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); + } + function testGetPreferredVariantHeaderWeight() { + global $wgRequest; $wgRequest->setHeader('Accept-Language', 'tg;q=1'); - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); + $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); + } + function testGetPreferredVariantHeaderWeight2() { + global $wgRequest; $wgRequest->setHeader('Accept-Language', 'tg-latn;q=1'); - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); + $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); + } + function testGetPreferredVariantHeaderMulti() { + global $wgRequest; $wgRequest->setHeader('Accept-Language', 'en, tg-latn;q=1'); - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); + $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); - $wgRequest->setHeader('Accept-Language', ''); + } - $wgUser = User::newFromId("admin"); - $wgContLang = Language::factory( 'tg-latn' ); + function testGetPreferredVariantUserOption() { + global $wgUser; + + $wgUser = new User; $wgUser->setId(1); $wgUser->setOption('variant', 'tg-latn'); - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, true)); + } + + function testGetPreferredVariantHeaderUserVsUrl() { + global $wgRequest, $wgUser, $wgContLang; + $wgContLang = Language::factory( 'tg-latn' ); $wgRequest->setVal('variant', 'tg'); + $wgUser = User::newFromId("admin"); + $wgUser->setId(1); $wgUser->setOption('variant', 'tg-latn'); // The user's data is ignored // because the variant is set in the URL. - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(true, true)); + } + + + function testGetPreferredVariantDefaultLanguageVariant() { + global $wgDefaultLanguageVariant; - $wgRequest->setVal('variant', null); $wgDefaultLanguageVariant = 'tg-latn'; - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, true)); + } - $wgRequest->setVal('variant', null); + function testGetPreferredVariantDefaultLanguageVsUrlVariant() { + global $wgDefaultLanguageVariant, $wgRequest, $wgContLang; + + $wgContLang = Language::factory( 'tg-latn' ); $wgDefaultLanguageVariant = 'tg'; - $this->lc = new TestConverter( $this->lang, 'tg', - array( 'tg', 'tg-latn' ) ); + $wgRequest->setVal('variant', null); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, false)); $this->assertEquals('tg', $this->lc->getPreferredVariant(false, true)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, false)); $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true, true)); - - } } -- 2.20.1