public static function browsers()
{
if (!empty($GLOBALS['CI_MODE'] && $GLOBALS['CI_MODE'] != 'selenium')) {
return;
}
if (!empty($GLOBALS['TESTSUITE_BROWSERSTACK_USER']) && !empty($GLOBALS['TESTSUITE_BROWSERSTACK_KEY'])) {
/* BrowserStack integration */
self::$_selenium_enabled = true;
$strategy = 'shared';
$build_local = false;
$build_id = 'Manual';
$project_name = 'phpMyAdmin';
if (getenv('BUILD_TAG')) {
$build_id = getenv('BUILD_TAG');
$strategy = 'isolated';
$project_name = 'phpMyAdmin (Jenkins)';
} elseif (getenv('TRAVIS_JOB_NUMBER')) {
$build_id = 'travis-' . getenv('TRAVIS_JOB_NUMBER');
$build_local = true;
$strategy = 'isolated';
$project_name = 'phpMyAdmin (Travis)';
}
$capabilities = array('browserstack.user' => $GLOBALS['TESTSUITE_BROWSERSTACK_USER'], 'browserstack.key' => $GLOBALS['TESTSUITE_BROWSERSTACK_KEY'], 'browserstack.debug' => false, 'project' => $project_name, 'build' => $build_id);
if ($build_local) {
$capabilities['browserstack.local'] = $build_local;
$capabilities['browserstack.localIdentifier'] = $build_id;
$capabilities['browserstack.debug'] = true;
}
$result = array();
$result[] = array('browserName' => 'chrome', 'host' => 'hub.browserstack.com', 'port' => 80, 'timeout' => 30000, 'sessionStrategy' => $strategy, 'desiredCapabilities' => $capabilities);
/* Only one browser for continuous integration for speed */
if (empty($GLOBALS['TESTSUITE_FULL'])) {
return $result;
}
/*
$result[] = array(
'browserName' => 'Safari',
'host' => 'hub.browserstack.com',
'port' => 80,
'timeout' => 30000,
'sessionStrategy' => $strategy,
'desiredCapabilities' => array_merge(
$capabilities,
array(
'os' => 'OS X',
'os_version' => 'Mavericks',
)
)
);
*/
$result[] = array('browserName' => 'firefox', 'host' => 'hub.browserstack.com', 'port' => 80, 'timeout' => 30000, 'sessionStrategy' => $strategy, 'desiredCapabilities' => $capabilities);
/* TODO: testing is MSIE is currently broken, so disabled
$result[] = array(
'browserName' => 'internet explorer',
'host' => 'hub.browserstack.com',
'port' => 80,
'timeout' => 30000,
'sessionStrategy' => $strategy,
'desiredCapabilities' => array_merge(
$capabilities,
array(
'os' => 'windows',
'os_version' => '7',
)
)
);
*/
return $result;
} elseif (!empty($GLOBALS['TESTSUITE_SELENIUM_HOST'])) {
self::$_selenium_enabled = true;
return array(array('browserName' => $GLOBALS['TESTSUITE_SELENIUM_BROWSER'], 'host' => $GLOBALS['TESTSUITE_SELENIUM_HOST'], 'port' => intval($GLOBALS['TESTSUITE_SELENIUM_PORT'])));
} else {
return array();
}
}