1: <?php
2: namespace Azalea\Selenium\Toolkit;
3:
4: class SauceLabsTestCase extends \Sauce\Sausage\WebDriverTestCase
5: {
6: protected $base_url = '';
7: protected static $tags = array();
8: public static $browsers = array();
9:
10: 11: 12:
13: public static function browsers()
14: {
15: $browsers = array();
16: $config = explode(";", $_ENV['selenium_browsers']);
17: foreach($config as $browser) {
18:
19: $parts = explode("|", $browser);
20: $name = $parts[0];
21: $version = $parts[1];
22: $platform = $parts[2];
23:
24: $browsers[] = array(
25: 'browserName' => $name,
26: 'desiredCapabilities' => array(
27: 'platform' => $platform,
28: 'version' => $version
29: ),
30: 'local' => (isset($parts[3]) ? true : false)
31: );
32: }
33: return $browsers;
34: }
35:
36: 37: 38:
39: public function setUp()
40: {
41: $this->base_url = $_ENV['selenium_base_url'];
42:
43: if(isset($_ENV['selenium_host'])) {
44: $this->setHost($_ENV['selenium_host']);
45:
46: if(isset($_ENV['selenium_port'])) {
47: $this->setPort((int)$_ENV['selenium_port']);
48: }
49: }
50:
51: parent::setUp();
52:
53: $this->setMetaData();
54: }
55:
56: public function setUpPage()
57: {
58:
59: $this->fileDetector(function($filename) {
60: if (file_exists($filename)) {
61: return $filename;
62: } else {
63: return NULL;
64: }
65: });
66:
67: parent::setUpPage();
68: }
69:
70: 71: 72:
73: protected function setMetaData()
74: {
75:
76: $caps = $this->getDesiredCapabilities();
77:
78: if (isset($_ENV['selenium_meta_tags']) && !empty($_ENV['selenium_meta_tags'])) {
79: $caps['tags'] = explode(",", $_ENV['selenium_meta_tags']);
80: $caps['tags'] = array_merge($caps['tags'], static::$tags);
81: }
82:
83: if (isset($_ENV['selenium_meta_public']) && !empty($_ENV['selenium_meta_public'])) {
84: $caps['public'] = $_ENV['selenium_meta_public'];
85: }
86:
87:
88:
89:
90: $caps['customData'] = (isset($caps['customData'])) ? $caps['customData'] : array();
91: $caps['customData']['url'] = $this->base_url;
92: $caps['customData']['debug'] = (isset($_ENV['selenium_debug']) ? $_ENV['selenium_debug'] : false);
93:
94:
95: $this->setDesiredCapabilities($caps);
96: }
97: }
98: ?>