コード例 #1
0
 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]"));
 }
コード例 #3
0
 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();
 }
コード例 #4
0
 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();
 }
コード例 #5
0
 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();
 }
コード例 #7
0
 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);
 }
コード例 #8
0
 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"));
 }
コード例 #9
0
 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"));
 }
コード例 #11
0
 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]"));
 }
コード例 #12
0
 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();
 }
コード例 #13
0
 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"));
 }