summaryrefslogtreecommitdiff
path: root/tests/Selenium
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2014-01-30 09:12:57 +0100
committerThomas Bruederli <thomas@roundcube.net>2014-01-30 09:12:57 +0100
commit8c893b79d230cc844226bdf3b1de95cd5a99ecb2 (patch)
treef8e6e1df519c9b85bd16bdc31f1ae6a3b16ce6e7 /tests/Selenium
parent1978ae97a5e0feb8d205c5fcbaa2cc16ce3ffc28 (diff)
Branching off for release 1.0
Diffstat (limited to 'tests/Selenium')
-rw-r--r--tests/Selenium/Addressbook/Addressbook.php21
-rw-r--r--tests/Selenium/Addressbook/Import.php29
-rw-r--r--tests/Selenium/Login.php21
-rw-r--r--tests/Selenium/Logout.php20
-rw-r--r--tests/Selenium/Mail/CheckRecent.php14
-rw-r--r--tests/Selenium/Mail/Compose.php25
-rw-r--r--tests/Selenium/Mail/Getunread.php13
-rw-r--r--tests/Selenium/Mail/List.php25
-rw-r--r--tests/Selenium/Mail/Mail.php23
-rw-r--r--tests/Selenium/Settings/About.php14
-rw-r--r--tests/Selenium/Settings/Folders.php20
-rw-r--r--tests/Selenium/Settings/Identities.php19
-rw-r--r--tests/Selenium/Settings/Settings.php17
-rw-r--r--tests/Selenium/bootstrap.php185
-rw-r--r--tests/Selenium/index.html8
-rw-r--r--tests/Selenium/phpunit.xml21
16 files changed, 0 insertions, 475 deletions
diff --git a/tests/Selenium/Addressbook/Addressbook.php b/tests/Selenium/Addressbook/Addressbook.php
deleted file mode 100644
index 9a22b6e13..000000000
--- a/tests/Selenium/Addressbook/Addressbook.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-class Selenium_Addressbook_Addressbook extends Selenium_Test
-{
- public function testAddressbook()
- {
- $this->go('addressbook');
-
- // check task
- $env = $this->get_env();
- $this->assertEquals('addressbook', $env['task']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('qsearchbox', $objects);
- $this->assertContains('folderlist', $objects);
- $this->assertContains('contactslist', $objects);
- $this->assertContains('countdisplay', $objects);
- }
-}
diff --git a/tests/Selenium/Addressbook/Import.php b/tests/Selenium/Addressbook/Import.php
deleted file mode 100644
index 13d81740f..000000000
--- a/tests/Selenium/Addressbook/Import.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-class Selenium_Addressbook_Import extends Selenium_Test
-{
- public function testImport()
- {
- $this->go('addressbook', 'import');
-
- // check task and action
- $env = $this->get_env();
- $this->assertEquals('addressbook', $env['task']);
- $this->assertEquals('import', $env['action']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('importform', $objects);
- }
-
- public function testImport2()
- {
- $this->go('addressbook', 'import');
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('importform', $objects);
- }
-}
diff --git a/tests/Selenium/Login.php b/tests/Selenium/Login.php
deleted file mode 100644
index a3f0ab6b4..000000000
--- a/tests/Selenium/Login.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-class Selenium_Login extends Selenium_Test
-{
- public function testLogin()
- {
- // first test, we're already on the login page
- $this->url(TESTS_URL);
-
- // task should be set to 'login'
- $env = $this->get_env();
- $this->assertEquals('login', $env['task']);
-
- // test valid login
- $this->login();
-
- // task should be set to 'mail' now
- $env = $this->get_env();
- $this->assertEquals('mail', $env['task']);
- }
-}
diff --git a/tests/Selenium/Logout.php b/tests/Selenium/Logout.php
deleted file mode 100644
index 95eeda57c..000000000
--- a/tests/Selenium/Logout.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-class Selenium_Logout extends Selenium_Test
-{
- public function testLogout()
- {
- $this->go('mail');
-
- $this->click_button('logout');
-
- sleep(TESTS_SLEEP);
-
- // task should be set to 'login'
- $env = $this->get_env();
- $this->assertEquals('login', $env['task']);
-
- // form should exist
- $user_input = $this->byCssSelector('form input[name="_user"]');
- }
-}
diff --git a/tests/Selenium/Mail/CheckRecent.php b/tests/Selenium/Mail/CheckRecent.php
deleted file mode 100644
index 865421c2d..000000000
--- a/tests/Selenium/Mail/CheckRecent.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-class Selenium_Mail_CheckRecent extends Selenium_Test
-{
- public function testCheckRecent()
- {
- $this->go('mail');
-
- $res = $this->ajaxResponse('check-recent', "rcmail.command('checkmail')");
-
- $this->assertEquals('check-recent', $res['action']);
- $this->assertRegExp('/this\.set_unread_count/', $res['exec']);
- }
-}
diff --git a/tests/Selenium/Mail/Compose.php b/tests/Selenium/Mail/Compose.php
deleted file mode 100644
index e707ef17d..000000000
--- a/tests/Selenium/Mail/Compose.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-class Selenium_Mail_Compose extends Selenium_Test
-{
- public function testCompose()
- {
- $this->go('mail', 'compose');
-
- // check task and action
- $env = $this->get_env();
- $this->assertEquals('mail', $env['task']);
- $this->assertEquals('compose', $env['action']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('qsearchbox', $objects);
- $this->assertContains('addressbookslist', $objects);
- $this->assertContains('contactslist', $objects);
- $this->assertContains('messageform', $objects);
- $this->assertContains('attachmentlist', $objects);
- $this->assertContains('filedrop', $objects);
- $this->assertContains('uploadform', $objects);
- }
-}
diff --git a/tests/Selenium/Mail/Getunread.php b/tests/Selenium/Mail/Getunread.php
deleted file mode 100644
index d6362f2f4..000000000
--- a/tests/Selenium/Mail/Getunread.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-class Selenium_Mail_Getunread extends Selenium_Test
-{
- public function testGetunread()
- {
- $this->go('mail');
-
- $res = $this->ajaxResponse('getunread', "rcmail.http_request('getunread')");
-
- $this->assertEquals('getunread', $res['action']);
- }
-}
diff --git a/tests/Selenium/Mail/List.php b/tests/Selenium/Mail/List.php
deleted file mode 100644
index 7574c1801..000000000
--- a/tests/Selenium/Mail/List.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-class Selenium_Mail_List extends Selenium_Test
-{
- public function testCheckRecent()
- {
- $this->go('mail');
-
- $res = $this->ajaxResponse('list', "rcmail.command('list')");
-
- $this->assertEquals('list', $res['action']);
- $this->assertRegExp('/this\.set_pagetitle/', $res['exec']);
- $this->assertRegExp('/this\.set_unread_count/', $res['exec']);
- $this->assertRegExp('/this\.set_rowcount/', $res['exec']);
- $this->assertRegExp('/this\.set_message_coltypes/', $res['exec']);
-// $this->assertRegExp('/this\.add_message_row/', $res['exec']);
-
- $this->assertContains('current_page', $res['env']);
- $this->assertContains('exists', $res['env']);
- $this->assertContains('pagecount', $res['env']);
- $this->assertContains('pagesize', $res['env']);
- $this->assertContains('messagecount', $res['env']);
- $this->assertContains('mailbox', $res['env']);
- }
-}
diff --git a/tests/Selenium/Mail/Mail.php b/tests/Selenium/Mail/Mail.php
deleted file mode 100644
index 98413787b..000000000
--- a/tests/Selenium/Mail/Mail.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-class Selenium_Mail_Mail extends Selenium_Test
-{
- public function testMail()
- {
- $this->go('mail');
-
- // check task
- $env = $this->get_env();
- $this->assertEquals('mail', $env['task']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('qsearchbox', $objects);
- $this->assertContains('mailboxlist', $objects);
- $this->assertContains('messagelist', $objects);
- $this->assertContains('quotadisplay', $objects);
- $this->assertContains('search_filter', $objects);
- $this->assertContains('countdisplay', $objects);
- }
-}
diff --git a/tests/Selenium/Settings/About.php b/tests/Selenium/Settings/About.php
deleted file mode 100644
index 9a6c31d4b..000000000
--- a/tests/Selenium/Settings/About.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-class Selenium_Settings_About extends Selenium_Test
-{
- public function testAbout()
- {
- $this->url(TESTS_URL . '/?_task=settings&_action=about');
-
- // check task and action
- $env = $this->get_env();
- $this->assertEquals('settings', $env['task']);
- $this->assertEquals('about', $env['action']);
- }
-}
diff --git a/tests/Selenium/Settings/Folders.php b/tests/Selenium/Settings/Folders.php
deleted file mode 100644
index fa64e45d6..000000000
--- a/tests/Selenium/Settings/Folders.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-class Selenium_Settings_Folders extends Selenium_Test
-{
- public function testFolders()
- {
- $this->go('settings', 'folders');
-
- // task should be set to 'settings' and action to 'folders'
- $env = $this->get_env();
- $this->assertEquals('settings', $env['task']);
- $this->assertEquals('folders', $env['action']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('quotadisplay', $objects);
- $this->assertContains('subscriptionlist', $objects);
- }
-}
diff --git a/tests/Selenium/Settings/Identities.php b/tests/Selenium/Settings/Identities.php
deleted file mode 100644
index 869018b09..000000000
--- a/tests/Selenium/Settings/Identities.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-class Selenium_Settings_Identities extends Selenium_Test
-{
- public function testIdentities()
- {
- $this->go('settings', 'identities');
-
- // check task and action
- $env = $this->get_env();
- $this->assertEquals('settings', $env['task']);
- $this->assertEquals('identities', $env['action']);
-
- $objects = $this->get_objects();
-
- // these objects should be there always
- $this->assertContains('identitieslist', $objects);
- }
-}
diff --git a/tests/Selenium/Settings/Settings.php b/tests/Selenium/Settings/Settings.php
deleted file mode 100644
index 08d8339f1..000000000
--- a/tests/Selenium/Settings/Settings.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-class Selenium_Settings_Settings extends Selenium_Test
-{
- public function testSettings()
- {
- $this->go('settings');
-
- // task should be set to 'settings'
- $env = $this->get_env();
- $this->assertEquals('settings', $env['task']);
-
- $objects = $this->get_objects();
-
- $this->assertContains('sectionslist', $objects);
- }
-}
diff --git a/tests/Selenium/bootstrap.php b/tests/Selenium/bootstrap.php
deleted file mode 100644
index e8b186a1e..000000000
--- a/tests/Selenium/bootstrap.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | tests/Selenium/bootstrap.php |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2009-2013, The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
- | |
- | PURPOSE: |
- | Environment initialization script for unit tests |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- | Author: Aleksander Machniak <alec@alec.pl> |
- +-----------------------------------------------------------------------+
-*/
-
-if (php_sapi_name() != 'cli')
- die("Not in shell mode (php-cli)");
-
-if (!defined('INSTALL_PATH')) define('INSTALL_PATH', realpath(dirname(__FILE__) . '/../../') . '/' );
-
-define('TESTS_DIR', dirname(__FILE__) . '/');
-
-if (@is_dir(TESTS_DIR . 'config')) {
- define('RCUBE_CONFIG_DIR', TESTS_DIR . 'config');
-}
-
-require_once(INSTALL_PATH . 'program/include/iniset.php');
-
-// Extend include path so some plugin test won't fail
-$include_path = ini_get('include_path') . PATH_SEPARATOR . TESTS_DIR . '..';
-if (set_include_path($include_path) === false) {
- die("Fatal error: ini_set/set_include_path does not work.");
-}
-
-$rcmail = rcube::get_instance('test');
-
-define('TESTS_URL', $rcmail->config->get('tests_url'));
-define('TESTS_BROWSER', $rcmail->config->get('tests_browser', 'firefox'));
-define('TESTS_USER', $rcmail->config->get('tests_username'));
-define('TESTS_PASS', $rcmail->config->get('tests_password'));
-define('TESTS_SLEEP', $rcmail->config->get('tests_sleep', 5));
-
-PHPUnit_Extensions_Selenium2TestCase::shareSession(true);
-
-// @TODO: remove user record from DB before running tests
-// @TODO: make sure mailbox has some content (always the same) or is empty
-// @TODO: plugins: enable all?
-
-/**
- * Base class for all tests in this directory
- */
-class Selenium_Test extends PHPUnit_Extensions_Selenium2TestCase
-{
- protected function setUp()
- {
-// $this->rc = rcube::get_instance();
- $this->setBrowser(TESTS_BROWSER);
-
- // Set root to our index.html, for better performance
- // See https://github.com/sebastianbergmann/phpunit-selenium/issues/217
- $this->setBrowserUrl(TESTS_URL . '/tests/Selenium');
- }
-
- protected function login()
- {
- $this->go('mail');
-
- $user_input = $this->byCssSelector('form input[name="_user"]');
- $pass_input = $this->byCssSelector('form input[name="_pass"]');
- $submit = $this->byCssSelector('form input[type="submit"]');
-
- $user_input->value(TESTS_USER);
- $pass_input->value(TESTS_PASS);
-
- // submit login form
- $submit->click();
-
- // wait after successful login
- sleep(TESTS_SLEEP);
- }
-
- protected function go($task = 'mail', $action = null)
- {
- $this->url(TESTS_URL . '/?_task=' . $task);
-
- // wait for interface load (initial ajax requests, etc.)
- sleep(TESTS_SLEEP);
-
- if ($action) {
- $this->click_button($action);
-
- sleep(TESTS_SLEEP);
- }
- }
-
- protected function get_env()
- {
- return $this->execute(array(
- 'script' => 'return rcmail.env;',
- 'args' => array(),
- ));
- }
-
- protected function get_buttons($action)
- {
- $buttons = $this->execute(array(
- 'script' => "return rcmail.buttons['$action'];",
- 'args' => array(),
- ));
-
- if (is_array($buttons)) {
- foreach ($buttons as $idx => $button) {
- $buttons[$idx] = $button['id'];
- }
- }
-
- return (array) $buttons;
- }
-
- protected function get_objects()
- {
- return $this->execute(array(
- 'script' => "var i,r = []; for (i in rcmail.gui_objects) r.push(i); return r;",
- 'args' => array(),
- ));
- }
-
- protected function click_button($action)
- {
- $buttons = $this->get_buttons($action);
- $id = array_shift($buttons);
-
- // this doesn't work for me
- $this->byId($id)->click();
- }
-
- protected function ajaxResponse($action, $script = '', $button = false)
- {
- if (!$script && !$button) {
- $script = "rcmail.command('$action')";
- }
-
- $script =
- "if (!window.test_ajax_response) {
- window.test_ajax_response_object = {};
- function test_ajax_response(response)
- {
- if (response.response && response.response.action) {
- window.test_ajax_response_object[response.response.action] = response.response;
- }
- }
- rcmail.addEventListener('responsebefore', test_ajax_response);
- }
- window.test_ajax_response_object['$action'] = null;
- $script;
- ";
-
- // run request
- $this->execute(array(
- 'script' => $script,
- 'args' => array(),
- ));
-
- if ($button) {
- $this->click_button($action);
- }
-
- // wait
- sleep(TESTS_SLEEP);
-
- // get response
- $response = $this->execute(array(
- 'script' => "return window.test_ajax_response_object['$action'];",
- 'args' => array(),
- ));
-
- return $response;
- }
-}
diff --git a/tests/Selenium/index.html b/tests/Selenium/index.html
deleted file mode 100644
index 7aa65f829..000000000
--- a/tests/Selenium/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>Roundcube Webmail Tests</title>
-</head>
-<body>
-Testing...
-</body>
-</html>
diff --git a/tests/Selenium/phpunit.xml b/tests/Selenium/phpunit.xml
deleted file mode 100644
index b5835cf74..000000000
--- a/tests/Selenium/phpunit.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<phpunit backupGlobals="false"
- bootstrap="bootstrap.php"
- colors="true">
- <testsuites>
- <testsuite name="All Tests">
- <file>Login.php</file><!-- Login.php test must be first -->
- <file>Addressbook/Addressbook.php</file>
- <file>Addressbook/Import.php</file>
- <file>Mail/Mail.php</file>
- <file>Mail/CheckRecent.php</file>
- <file>Mail/Compose.php</file>
- <file>Mail/Getunread.php</file>
- <file>Mail/List.php</file>
- <file>Settings/About.php</file>
- <file>Settings/Folders.php</file>
- <file>Settings/Identities.php</file>
- <file>Settings/Settings.php</file>
- <file>Logout.php</file><!-- Logout.php test must be last -->
- </testsuite>
- </testsuites>
-</phpunit>