Gentics Portal.Node PHP API
 All Classes Namespaces Functions Variables Pages
LanguageTest.php
1 <?php
2 /**
3  * Created by JetBrains PhpStorm.
4  * User: Andrey
5  * Date: 5/22/13
6  * Time: 3:31 PM
7  * To change this template use File | Settings | File Templates.
8  */
9 
10 class LanguageTest extends CDbTestCase{
11 
12  public $fixtures = array(
13 
14  );
15 
16  public $languages;
17 
18  public $returnUrl;
19 
20  public static function setUpBeforeClass(){
21 
22  Yii::app()->getModule('language')->setImport(array('language.controllers.*')); ;
23 
24  }
25 
26  public function setUp(){
27 
28  $this->languages = Yii::app()->getModule('language')->languages;
29 
30 
31  $c = $this->getMock('LanguageController', array('redirect'),array('phpunit'));
32 
33  $c->expects($this->any())
34  ->method('redirect');
35 
36  $c->setAction(new CInlineAction($c, 'urltest'));
37  Yii::app()->setController($c);
38 
39  $this->returnUrl = '/Content.Node/index.html';
40  }
41 
42  public function testCorrectShow(){
43 
44  $_SERVER['REQUEST_URI'] = $this->returnUrl;
45  $languageWidgetHtml = Yii::app()->controller->widget('language.widgets.LanguageWidget', array(), true);
46 
47  foreach($this->languages as $language){
48 
49  preg_match("/\/language\/language\/change\?language=$language&amp;return_url=".urlencode($this->returnUrl)."/", $languageWidgetHtml, $match);
50  $this->assertNotEmpty($match, "There is no row which should contain link to '$language'' version");
51  }
52  }
53 
54  public function testSwitchLanguage(){
55 
56  $_SERVER['SERVER_NAME'] = 'gportal-dev-dev.gentics.com';
57  foreach($this->languages as $language){
58 
59  Yii::app()->controller->actionChange($language, $this->returnUrl);
60 
61  $this->assertEquals(Yii::app()->user->getState('language'),$language);
62  }
63  }
64 }