diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2014-01-30 09:12:57 +0100 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2014-01-30 09:12:57 +0100 |
commit | 8c893b79d230cc844226bdf3b1de95cd5a99ecb2 (patch) | |
tree | f8e6e1df519c9b85bd16bdc31f1ae6a3b16ce6e7 /tests/Selenium/bootstrap.php | |
parent | 1978ae97a5e0feb8d205c5fcbaa2cc16ce3ffc28 (diff) |
Branching off for release 1.0
Diffstat (limited to 'tests/Selenium/bootstrap.php')
-rw-r--r-- | tests/Selenium/bootstrap.php | 185 |
1 files changed, 0 insertions, 185 deletions
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; - } -} |