/** * 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'))); }