public function testMySQLDatabaseSuccess() { $databaseName = DB_NAME_PREFIX . "_sqlite_db"; parent::navigateConnetToDatabasePage(); $this->click("DBType_sqlite"); // Select 'SQLite' database type $this->assertEquals("SQLite settings", $this->getText("//div[@id='DB_wrapper_sqlite']/h3")); // Change database name $defaultDbName = $this->getText("sqlite_wgDBname"); $this->type("sqlite_wgDBname", " "); $this->type("sqlite_wgDBname", $databaseName); $this->assertNotEquals($defaultDbName, $databaseName); // 'Database settings' page parent::clickContinueButton(); // 'Name' page parent::clickContinueButton(); parent::completeNamePage(); // 'Options page parent::clickContinueButton(); // 'Install' page parent::clickContinueButton(); // 'Complete' page parent::completePageSuccessfull(); parent::restartInstallation(); }
public function testPageNavigation() { $this->open("http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php"); // Navigate to the 'Read me' page $this->click("link=Read me"); $this->waitForPageToLoad(PAGE_LOAD_TIME); $this->assertEquals("Read me", $this->getText(LINK_DIV . "h2[1]")); $this->assertTrue($this->isElementPresent("submit-back")); parent::clickBackButton(); // Navigate to the 'Release notes' page $this->click("link=Release notes"); $this->waitForPageToLoad(PAGE_LOAD_TIME); $this->assertEquals("Release notes", $this->getText(LINK_DIV . "h2[1]")); $this->assertTrue($this->isElementPresent("submit-back")); parent::clickBackButton(); // Navigate to the 'Copying' page $this->click("link=Copying"); $this->waitForPageToLoad(PAGE_LOAD_TIME); $this->assertEquals("Copying", $this->getText(LINK_DIV . "h2[1]")); $this->assertTrue($this->isElementPresent("submit-back")); parent::clickBackButton(); // Navigate to the 'Upgrading' page $this->click("link=Upgrading"); $this->waitForPageToLoad(PAGE_LOAD_TIME); $this->assertEquals("Upgrading", $this->getText(LINK_DIV . "h2[1]")); }
public function testDifferentDatabaseAccount() { $databaseName = DB_NAME_PREFIX . "_dif_accounts"; // Navigate to the 'Database settings' page parent::navigateDatabaseSettingsPage($databaseName); // Click on the 'Use the same account as for installation' check box $this->click("mysql__SameAccount"); // Change the 'Database username' $this->type("mysql_wgDBuser", DB_WEB_USER); // Enter 'Database password:'******'Create the account if it does not already exist' check box $this->click("mysql__CreateDBAccount"); parent::clickContinueButton(); // 'Name' page parent::completeNamePage(); // 'Options' page parent::clickContinueButton(); // 'Install' page $this->assertEquals("Creating database user... done", $this->getText(LINK_FORM . "ul/li[3]")); parent::clickContinueButton(); // 'Complete' page parent::completePageSuccessfull(); $this->chooseCancelOnNextConfirmation(); }
public function testDifferentDatabasePrefix() { $databaseName = DB_NAME_PREFIX . "_db_prefix"; parent::navigateInstallPage($databaseName); // To 'Options' page parent::clickBackButton(); // To 'Name' page parent::clickBackButton(); // To 'Database settings' page parent::clickBackButton(); // To 'Connect to database' page parent::clickBackButton(); // From 'Connect to database' page without database prefix parent::clickContinueButton(); // Verify upgrade existing message $this->assertEquals("Upgrade existing installation", $this->getText(LINK_DIV . "h2")); // To 'Connect to database' page parent::clickBackButton(); // Input the database prefix $this->type("mysql_wgDBprefix", DATABASE_PREFIX); // From 'Connect to database' page with database prefix parent::clickContinueButton(); // To 'Complete' page parent::clickContinueButton(); parent::completeNamePage(); parent::clickContinueButton(); // Verify already installed warning message $this->assertEquals("Install", $this->getText(LINK_DIV . "h2")); $this->assertEquals("Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.", $this->getText(LINK_FORM . "div[1]")); parent::clickContinueButton(); parent::completePageSuccessfull(); $this->chooseCancelOnNextConfirmation(); parent::restartInstallation(); }
public function testUpgradeExistingDatabase() { $databaseName = DB_NAME_PREFIX . "_upgrade_existing"; parent::navigateInstallPage($databaseName); $this->open("http://*****:*****@id='bodyContent']/div/div[1]/div[4]/form/div[1]/div[2]/p[1]")); $this->assertEquals("You can now Folder/index.php start using your wiki.", $this->getText("//div[@id='bodyContent']/div/div[1]/div[4]/form/div[1]/div[2]/p[2]")); $this->assertEquals("Folder/index.php start using your wiki", $this->getText("link=Folder/index.php start using your wiki")); $this->assertTrue($this->isElementPresent("submit-regenerate")); $this->click("submit-regenerate"); $this->waitForPageToLoad(PAGE_LOAD_TIME); $this->assertEquals("Database settings", $this->getText(LINK_DIV . "h2")); // 'Database settings' page parent::clickContinueButton(); // Name page parent::completeNamePage(); // Options page parent::clickContinueButton(); // Install page $this->assertEquals("Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.", $this->getText(LINK_FORM . "div[1]/div[2]")); parent::clickContinueButton(); // complete parent::completePageSuccessfull(); $this->chooseCancelOnNextConfirmation(); parent::restartInstallation(); }
public function testInstallOnAlreadyInstalled() { $databaseName = DB_NAME_PREFIX . "_already_installed"; parent::navigateInstallPage($databaseName); // 'Options' page parent::clickBackButton(); // Install page parent::clickContinueButton(); // 'Install' page should display after the 'Option' page $this->assertEquals("Install", $this->getText(LINK_DIV . "h2")); // Verify warning text displayed $this->assertEquals("Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.", $this->getText(LINK_FORM . "div[1]/div[2]")); // Complete page parent::clickContinueButton(); parent::completePageSuccessfull(); $this->chooseCancelOnNextConfirmation(); parent::restartInstallation(); }
public function testCancelRestartInstallation() { $dbNameBeforeRestart = DB_NAME_PREFIX . "_cancel_restart"; parent::navigateDatabaseSettingsPage($dbNameBeforeRestart); // Verify 'Restart installation' link available $this->assertTrue($this->isElementPresent("link=Restart installation")); $this->click("link=Restart installation"); $this->waitForPageToLoad(PAGE_LOAD_TIME); // 'Restart Installation' page displayed $this->assertEquals("Restart installation", $this->getText(LINK_DIV . "h2")); // Restart warning message displayed $this->assertTrue($this->isTextPresent("Do you want to clear all saved data that you have entered and restart the installation process?")); // Click on the 'Back' button parent::clickBackButton(); // Navigates to the previous page $this->assertEquals("Database settings", $this->getText(LINK_DIV . "h2")); // 'Connect to database' page parent::clickBackButton(); // Saved data remain on the page. $dbNameAfterRestart = $this->getValue("mysql_wgDBname"); $this->assertEquals($dbNameBeforeRestart, $dbNameAfterRestart); }
public function testBothButtonsAvailability() { // Verify buttons availability on 'Welcome to MediaWiki' page parent::navigateWelcometoMediaWikiPage(); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); parent::restartInstallation(); // Verify buttons availability on 'Connect to Database' page parent::navigateConnetToDatabasePage(); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); parent::restartInstallation(); // Verify buttons availability on 'Database settings' page $databaseName = DB_NAME_PREFIX . "_db_settings"; parent::navigateDatabaseSettingsPage($databaseName); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); parent::restartInstallation(); // Verify buttons availability on 'Name' page $databaseName = DB_NAME_PREFIX . "_name"; parent::navigateNamePage($databaseName); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); parent::restartInstallation(); // Verify buttons availability on 'Options' page $databaseName = DB_NAME_PREFIX . "_options"; parent::navigateOptionsPage($databaseName); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); parent::restartInstallation(); // Verify buttons availability on 'Install' page $databaseName = DB_NAME_PREFIX . "_install"; parent::navigateInstallPage($databaseName); $this->assertTrue($this->isElementPresent("submit-back")); $this->assertTrue($this->isElementPresent("submit-continue")); }
public function testMySQLDatabaseSuccess() { $databaseName = DB_NAME_PREFIX . "_sql_db"; parent::navigateConnetToDatabasePage(); // Verify 'MySQL" is selected as the default database type $this->assertEquals("MySQL settings", $this->getText("//div[@id='DB_wrapper_mysql']/h3")); // Change 'Database name' $defaultDbName = $this->getText("mysql_wgDBname"); $this->type("mysql_wgDBname", " "); $this->type("mysql_wgDBname", $databaseName); $this->assertNotEquals($defaultDbName, $databaseName); // 'Database settings' page parent::clickContinueButton(); // 'Name' page parent::clickContinueButton(); parent::completeNamePage(); // 'Options page parent::clickContinueButton(); // 'Install' page parent::clickContinueButton(); // 'Complete' page parent::completePageSuccessfull(); parent::restartInstallation(); }
public function testErrorsConnectToDatabasePage() { parent::navigateConnetToDatabasePage(); // Verify warning mesage for invalid database host $this->type("mysql_wgDBserver", INVALID_DB_HOST); parent::clickContinueButton(); $this->assertEquals("DB connection error: php_network_getaddresses: getaddrinfo failed: No such host is known. (" . INVALID_DB_HOST . ").", $this->getText(LINK_DIV . "div[2]/div[2]/p[1]")); $this->assertEquals("Check the host, username and password below and try again.", $this->getText(LINK_DIV . "div[2]/div[2]/p[2]")); // Verify warning message for the blank database host $this->type("mysql_wgDBserver", ""); parent::clickContinueButton(); $this->assertEquals("MySQL 4.0.14 or later is required, you have .", $this->getText(LINK_DIV . "div[2]/div[2]")); // Valid Database Host $this->type("mysql_wgDBserver", VALID_DB_HOST); // Verify warning message for the invalid database name $this->type("mysql_wgDBname", INVALID_DB_NAME); parent::clickContinueButton(); $this->assertEquals("Invalid database name \"" . INVALID_DB_NAME . "\". Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).", $this->getText(LINK_DIV . "div[2]/div[2]/p")); // Verify warning message for the blank database name $this->type("mysql_wgDBname", ""); parent::clickContinueButton(); $this->assertEquals("You must enter a value for \"Database name\"", $this->getText(LINK_DIV . "div[2]/div[2]")); // valid Database name $this->type("mysql_wgDBname", VALID_DB_NAME); // Verify warning message for the invalid databaase prefix $this->type("mysql_wgDBprefix", INVALID_DB_PREFIX); parent::clickContinueButton(); $this->assertEquals("Invalid database prefix \"" . INVALID_DB_PREFIX . "\". Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).", $this->getText(LINK_DIV . "div[2]/div[2]")); // Valid Database prefix $this->type("mysql_wgDBprefix", VALID_DB_PREFIX); // Verify warning message for the invalid database user name $this->type("mysql__InstallUser", INVALID_DB_USER_NAME); parent::clickContinueButton(); $this->assertEquals("DB connection error: Access denied for user '" . INVALID_DB_USER_NAME . "'@'localhost' (using password: NO) (localhost).", $this->getText(LINK_DIV . "div[2]/div[2]/p[1]")); $this->assertEquals("Check the host, username and password below and try again.", $this->getText(LINK_DIV . "div[2]/div[2]/p[2]")); // Verify warning message for the blank database user name $this->type("mysql__InstallUser", ""); parent::clickContinueButton(); $this->assertEquals("DB connection error: Access denied for user 'SYSTEM'@'localhost' (using password: NO) (localhost).", $this->getText(LINK_DIV . "div[2]/div[2]/p[1]")); $this->assertEquals("Check the host, username and password below and try again.", $this->getText(LINK_DIV . "div[2]/div[2]/p[2]")); // Valid Database username $this->type("mysql__InstallUser", VALID_DB_USER_NAME); // Verify warning message for the invalid password $this->type("mysql__InstallPassword", INVALID_DB_PASSWORD); parent::clickContinueButton(); $this->assertEquals("DB connection error: Access denied for user 'root'@'localhost' (using password: YES) (localhost).", $this->getText(LINK_DIV . "div[2]/div[2]/p[1]")); $this->assertEquals("Check the host, username and password below and try again.", $this->getText(LINK_DIV . "div[2]/div[2]/p[2]")); // Verify warning message for the invalid username and password $this->type("mysql__InstallUser", INVALID_DB_USER_NAME); $this->type("mysql__InstallPassword", INVALID_DB_PASSWORD); parent::clickContinueButton(); $this->assertEquals("DB connection error: Access denied for user '" . INVALID_DB_USER_NAME . "'@'localhost' (using password: YES) (localhost).", $this->getText(LINK_DIV . "div[2]/div[2]/p[1]")); $this->assertEquals("Check the host, username and password below and try again.", $this->getText(LINK_DIV . "div[2]/div[2]/p[2]")); // Valid username and valid password $this->type("mysql__InstallUser", VALID_DB_USER_NAME); $this->type("mysql__InstallPassword", ""); parent::clickContinueButton(); // successfully completes the 'Connect to database' page $this->assertEquals("Database settings", $this->getText(LINK_DIV . "h2")); }
public function testErrorsNamePage() { $databaseName = DB_NAME_PREFIX . "_error_name"; parent::navigateNamePage($databaseName); // Verify warning message for all blank fields parent::clickContinueButton(); $this->assertEquals("Enter a site name.", $this->getText(LINK_DIV . "div[2]/div[2]")); $this->assertEquals("Enter an administrator username.", $this->getText(LINK_DIV . "div[3]/div[2]")); $this->assertEquals("Enter a password for the administrator account.", $this->getText(LINK_DIV . "div[4]/div[2]")); // Verify warning message for the blank 'Site name' $this->type("config__AdminName", VALID_YOUR_NAME); $this->type("config__AdminPassword", VALID_PASSWORD); $this->type("config__AdminPassword2", VALID_PASSWORD_AGAIN); parent::clickContinueButton(); $this->assertEquals("Enter a site name.", $this->getText(LINK_DIV . "div[2]/div[2]")); // Input valid 'Site name' $this->type("config_wgSitename", VALID_WIKI_NAME); // Verify warning message for the invalid "Project namespace' $this->click("config__NamespaceType_other"); $this->type("config_wgMetaNamespace", INVALID_NAMESPACE); parent::clickContinueButton(); $this->assertEquals("The specified namespace \"\" is invalid. Specify a different project namespace.", $this->getText(LINK_DIV . "div[2]/div[2]")); // Verify warning message for the blank 'Project namespace' $this->type("config_wgSitename", VALID_WIKI_NAME); $this->click("config__NamespaceType_other"); $this->type("config_wgMetaNamespace", ""); parent::clickContinueButton(); $this->assertEquals("The specified namespace \"\" is invalid. Specify a different project namespace.", $this->getText(LINK_DIV . "div[2]/div[2]")); // Valid 'Project namespace' $this->click("config__NamespaceType_other"); $this->type("config_wgMetaNamespace", VALID_NAMESPACE); parent::clickContinueButton(); // Valid 'Site name' $this->click("config__NamespaceType_site-name"); $this->type("config_wgSitename", VALID_WIKI_NAME); // Verify warning message for blank 'Your name' $this->type("config__AdminName", " "); parent::clickContinueButton(); $this->assertEquals("Enter an administrator username.", $this->getText(LINK_DIV . "div[2]/div[2]")); $this->type("config_wgSitename", VALID_WIKI_NAME); // Verify warning message for blank 'Password' $this->type("config__AdminName", VALID_YOUR_NAME); $this->type("config__AdminPassword", " "); parent::clickContinueButton(); $this->assertEquals("Enter a password for the administrator account.", $this->getText(LINK_DIV . "div[2]/div[2]")); // Verify warning message for the blank 'Password again' $this->type("config_wgSitename", VALID_WIKI_NAME); $this->type("config__AdminPassword", VALID_PASSWORD); $this->type("config__AdminPassword2", " "); parent::clickContinueButton(); $this->assertEquals("The two passwords you entered do not match.", $this->getText(LINK_DIV . "div[2]/div[2]")); // Verify warning message for the different'Password' and 'Password again' $this->type("config_wgSitename", VALID_WIKI_NAME); $this->type("config__AdminPassword", VALID_PASSWORD); $this->type("config__AdminPassword2", INVALID_PASSWORD_AGAIN); parent::clickContinueButton(); $this->assertEquals("The two passwords you entered do not match.", $this->getText(LINK_DIV . "div[2]/div[2]")); }
public function testNameFieldHint() { $databaseName = DB_NAME_PREFIX . "_name_field"; parent::navigateNamePage($databaseName); // Verify help field for 'Name of Wiki' $this->click(LINK_FORM . "div[1]/div[1]/div/span[1]"); $this->assertEquals(NAME_OF_WIKI_HELP, $this->getText(LINK_FORM . "div[1]/div[1]/div/span[2]/p")); // Verify help field for 'Project namespace' $this->click(LINK_FORM . "div[2]/div[1]/div/span[1]"); $this->assertEquals(PROJECT_NAMESPACE_HELP, $this->getText(LINK_FORM . "div[2]/div[1]/div/span[2]/p")); // Verify help field for 'Your Name' $this->click(LINK_FORM . "fieldset/div[1]/div[1]/div/span[1]"); $this->assertEquals(USER_NAME_HELP, $this->getText(LINK_FORM . "fieldset/div[1]/div[1]/div/span[2]/p")); // Verify help field for 'E mail address' $this->click(LINK_FORM . "fieldset/div[4]/div[1]/div/span[1]"); $this->assertEquals(EMAIL_ADDRESS_HELP, $this->getText(LINK_FORM . "fieldset/div[4]/div[1]/div/span[2]/p")); parent::restartInstallation(); }
public function testRightFramework() { parent::navigateLanguagePage(); // Verfy right framework texts display $this->assertEquals("Language", $this->getText(LINK_RIGHT_FRAMEWORK . "li[1]")); $this->assertEquals("Existing wiki", $this->getText(LINK_RIGHT_FRAMEWORK . "li[2]")); $this->assertEquals("Welcome to MediaWiki!", $this->getText(LINK_RIGHT_FRAMEWORK . "li[3]")); $this->assertEquals("Connect to database", $this->getText(LINK_RIGHT_FRAMEWORK . "li[4]")); $this->assertEquals("Upgrade existing installation", $this->getText(LINK_RIGHT_FRAMEWORK . "li[5]")); $this->assertEquals("Database settings", $this->getText(LINK_RIGHT_FRAMEWORK . "li[6]")); $this->assertEquals("Name", $this->getText(LINK_RIGHT_FRAMEWORK . "li[7]")); $this->assertEquals("Options", $this->getText(LINK_RIGHT_FRAMEWORK . "li[8]")); $this->assertEquals("Install", $this->getText(LINK_RIGHT_FRAMEWORK . "li[9]")); $this->assertEquals("Complete!", $this->getText(LINK_RIGHT_FRAMEWORK . "li[10]/span")); }