/**
  * TARGET : executeAddTranslationRequest
  * scenario1 : (it will be used to test 6 cases)
  * Page A,B is in the default language
  * Page C,D is not in the default language
  * 
  * ("", A, titleB) failed
  * ("", C, titleD) failed
  * (A, "", titleB) failed
  * (C, "", titleD) failed
  * ("", C, titleB) success
  * (A, ""; titleD) success
  */
 public function testExecuteAddTranslationRequest_Scenario1_ndl()
 {
     global $wgContLanguageCode;
     $controller = new MultiLanguageManager_controller();
     $display = new MultiLanguageManager_displaytest();
     $controller->setDisplay($display);
     MultiLanguageManager_controller::setUILanguage($this->notDefaultLanguage);
     $this->dbw->safeQuery("INSERT INTO ! (page_id, lang) VALUES (?, ?)", $this->db_page_language, $this->pageswithoutlanguage[2], $this->notDefaultLanguage);
     $this->assertEquals($this->dbw->affectedRows(), 1);
     $this->dbw->safeQuery("INSERT INTO ! (page_id, lang) VALUES (?, ?)", $this->db_page_language, $this->pageswithoutlanguage[3], $this->notDefaultLanguage);
     $this->assertEquals($this->dbw->affectedRows(), 1);
     $titleB = Title::newFromId($this->pageswithoutlanguage[1]);
     $this->assertEquals(get_class($titleB), "Title");
     $titleD = Title::newFromId($this->pageswithoutlanguage[3]);
     $this->assertEquals(get_class($titleD), "Title");
     //scenario1 : ready
     $this->assertEquals($controller->executeAddTranslationRequest("", $this->pageswithoutlanguage[0], $titleB->getText()), "multilanguagemanager_translatedefault");
     $this->assertEquals($controller->executeAddTranslationRequest("", $this->pageswithoutlanguage[2], $titleD->getText()), "multilanguagemanager_sourcenotdefault");
     $this->assertEquals($controller->executeAddTranslationRequest($this->pageswithoutlanguage[0], "", $titleB->getText()), "multilanguagemanager_translatedefault");
     $this->assertEquals($controller->executeAddTranslationRequest($this->pageswithoutlanguage[2], "", $titleD->getText()), "multilanguagemanager_sourcenotdefault");
     $this->assertEquals($controller->executeAddTranslationRequest("", $this->pageswithoutlanguage[2], $titleB->getText()), "multilanguagemanager_translationadded");
     $this->assertEquals($controller->executeAddTranslationRequest($this->pageswithoutlanguage[0], "", $titleD->getText()), "multilanguagemanager_translationadded");
     //We check data
     $tbs = $this->dbw->safeQuery("SELECT * FROM ! WHERE source=? and translate=?", $this->db_page_translation, $this->pageswithoutlanguage[1], $this->pageswithoutlanguage[2]);
     $this->assertEquals($this->dbw->numRows($tbs), 1);
     $tbs = $this->dbw->safeQuery("SELECT * FROM ! WHERE source=? and translate=?", $this->db_page_translation, $this->pageswithoutlanguage[0], $this->pageswithoutlanguage[3]);
     $this->assertEquals($this->dbw->numRows($tbs), 1);
 }
 /**
  * execute the special page
  */
 public function execute($par)
 {
     global $wgUser, $wgOut;
     global $wgRequest;
     global $mgLanguagePermisionsKey;
     //needed with 1.6.x version
     $wgOut->setArticleFlag(false);
     $mode = $wgRequest->getVal('mode');
     $controller = new MultiLanguageManager_controller();
     if ($wgUser->isAllowed($mgLanguagePermisionsKey)) {
         switch ($mode) {
             case "deleteTranslation":
                 $source = $wgRequest->getVal('source');
                 $translate = $wgRequest->getVal('translate');
                 $wgOut->addHTML($controller->executeDeleteTranslationRequest($source, $translate));
                 break;
             case "addTranslation":
                 $source = $wgRequest->getVal('source');
                 $translate = $wgRequest->getVal('translate');
                 $articletitle = $wgRequest->getVal('articletitle');
                 $wgOut->addHTML($controller->executeAddTranslationRequest($source, $translate, $articletitle));
                 break;
             case "setLanguage":
                 $source = $wgRequest->getVal('source');
                 $lang = $wgRequest->getVal('lang');
                 $wgOut->addHTML($controller->executeSetLanguageRequest($source, $lang));
                 break;
         }
     }
     $wgOut->addHTML($controller->createDetailLanguagePage($wgRequest->getVal('cible')));
 }