testcentricity_web 0.7.9 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3eb35217003e7c6f2828883021e9b5088ee3006
4
- data.tar.gz: 8b8e132ac3ee73442cef16731c2145fba046f63d
3
+ metadata.gz: 413fc537c154be3f2dcf1b31d68f4e9b03de600b
4
+ data.tar.gz: 0ab45a3cc3c49aee5d327a93efccac581bb6e125
5
5
  SHA512:
6
- metadata.gz: b7367b9001be3c10a766187863b8239b36a93eb98319bc156660616785ff03d740c347fdfe2359e88f79b53308a2a386b3c619baff28c53978412dd1bc26e2fa
7
- data.tar.gz: 994539843137d2964a35a30d10d8f6b9bc3bf805583ad57886d16e02525b7ecf8cd1ed4b087c86ca78c9e108439d4bcc5769a83413f3cf5c32808cbb702fdefc
6
+ metadata.gz: 838e99e3be15fda4e31b9635114292fe58c490d92dadb273b25c2c89cc41c0272509fdebf23fa0131e94f66a2bca7f2cd6f6c8a545569bc142f4a8942e3f09f2
7
+ data.tar.gz: 19100004c7508f79d8d36b4607613faf63562d0f3ad178d015f54a3d7b13e6c39ec4e5db8996f545803de5a02fb6055c95b4d89707eb88e9402e08c733f48af0
data/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # TestCentricityWeb
1
+ # TestCentricity™ Web
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/testcentricity_web.svg)](https://badge.fury.io/rb/testcentricity_web) [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause)
4
4
 
5
5
 
6
- The TestCentricity™ core generic framework for desktop and mobile web site testing implements a Page Object and Data Object Model DSL for
6
+ The TestCentricity™ Web core generic framework for desktop and mobile web site testing implements a Page Object and Data Object Model DSL for
7
7
  use with Cucumber, Capybara, and Selenium-Webdriver.
8
8
 
9
9
  The TestCentricity™ Web gem supports running testing against the following web test targets:
10
10
 
11
11
  * locally hosted desktop browsers (Firefox, Chrome, Safari, IE, or Edge)
12
- * locally hosted emulated iOS, Android, and Windows Phone mobile browsers (using Firefox)
12
+ * locally hosted emulated iOS, Android, and Windows Phone mobile browsers (using Firefox or Chrome)
13
13
  * a "headless" browser (using Poltergeist and PhantomJS)
14
14
  * cloud hosted desktop or mobile web browsers using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services.
15
15
 
@@ -61,9 +61,9 @@ project's Gemfile:
61
61
 
62
62
  The **Page Object Model** is a test automation pattern that aims to create an abstraction of your web app's User Interface that can be used
63
63
  in tests. A **Page Object** is an object that represents a single page in your AUT (Application Under Test). **Page Objects** encapsulate the
64
- implementation details of a web page and expose an API that supports interaction with, and validation of UI elements on the page.
64
+ implementation details of a web page and expose an API that supports interaction with, and validation of the UI elements on the page.
65
65
 
66
- **Page Objects** makes it easier to maintain automated tests, because changes to page UI elements are only changed in one location - in the
66
+ **Page Objects** makes it easier to maintain automated tests because changes to page UI elements are updated in only one location - in the
67
67
  **Page Object** class definition. By adopting a **Page Object Model**, Cucumber Feature files and step definitions are no longer required to
68
68
  hold specific information about a page's UI objects, thus minimizing maintenance requirements. If any element on a page changes (URL path,
69
69
  text field attributes, button captions, etc.), maintenance is performed in the **Page Object** class definition only, typically with no need
@@ -357,27 +357,30 @@ To maximize a desktop browser window, you set the `BROWSER_SIZE` Environment Var
357
357
 
358
358
  ### Locally hosted emulated mobile web browser
359
359
 
360
- You can also run your tests against emulated mobile device browsers within a locally hosted instance of the Firefox desktop browser. The specified
361
- mobile browser's user agent and default screen resolution and orientation will be automatically be set in the local Firefox browser instance. You
362
- may even specify the emulated device's screen orientation. For locally hosted emulated mobile web browsers, the `WEB_BROWSER` Environment Variable
363
- must be set to one of the values from the table below:
364
-
365
- `WEB_BROWSER` |
366
- --------------- |
367
- `ipad` |
368
- `ipad_pro` |
369
- `iphone` |
370
- `iphone4` |
371
- `iphone5` |
372
- `iphone6` |
373
- `iphone6_plus` |
374
- `android_phone` |
375
- `android_tablet` |
376
- `windows_phone7` |
377
- `windows_phone8` |
360
+ You can also run your tests against emulated mobile device browsers within a locally hosted instance of a Firefox (default) or Chrome desktop browser.
361
+ The specified mobile browser's user agent and default screen resolution and orientation will be automatically set in the local Firefox or Chrome browser
362
+ instance. You may even specify the emulated device's screen orientation. For locally hosted emulated mobile web browsers, the `WEB_BROWSER` Environment
363
+ Variable must be set to one of the values from the table below:
364
+
365
+ `WEB_BROWSER` | `HOST_BROWSER`
366
+ --------------- |------------
367
+ `ipad` |`firefox` (default) or `chrome`
368
+ `ipad_pro` |`firefox` (default) or `chrome`
369
+ `iphone` |`firefox` (default) or `chrome`
370
+ `iphone4` |`firefox` (default) or `chrome`
371
+ `iphone5` |`firefox` (default) or `chrome`
372
+ `iphone6` |`firefox` (default) or `chrome`
373
+ `iphone6_plus` |`firefox` (default) or `chrome`
374
+ `android_phone` |`firefox` (default) or `chrome`
375
+ `android_tablet` |`firefox` (default) or `chrome`
376
+ `windows_phone7` |`firefox` (default) or `chrome`
377
+ `windows_phone8` |`firefox` (default) or `chrome`
378
378
 
379
379
  To specify the emulated device's screen orientation, you set the `ORIENTATION` Environment Variable to either `portrait` or `landscape`.
380
380
 
381
+ To use a local instance of the Chrome desktop browser to host the emulated mobile web browser, you must set the `HOST_BROWSER` Environment Variable
382
+ to `chrome`.
383
+
381
384
 
382
385
  ### Remotely hosted desktop and mobile web browsers
383
386
 
@@ -534,19 +537,20 @@ replace the placeholder text with your user account and authorization code for t
534
537
 
535
538
  #==============
536
539
  # profiles for locally hosted mobile web browsers (emulated locally in Firefox browser)
540
+ # NOTE: to host emulated mobile browsers in Chrome set the HOST_BROWSER=chrome
537
541
  #==============
538
542
 
539
- ipad: WEB_BROWSER=ipad <%= mobile %>
540
- ipad_pro: WEB_BROWSER=ipad_pro <%= mobile %>
541
- iphone: WEB_BROWSER=iphone <%= mobile %>
542
- iphone4: WEB_BROWSER=iphone4 <%= mobile %>
543
- iphone5: WEB_BROWSER=iphone5 <%= mobile %>
544
- iphone6: WEB_BROWSER=iphone6 <%= mobile %>
545
- iphone6_plus: WEB_BROWSER=iphone6_plus <%= mobile %>
546
- android_phone: WEB_BROWSER=android_phone <%= mobile %>
547
- android_tablet: WEB_BROWSER=android_tablet <%= mobile %>
548
- windows_phone7: WEB_BROWSER=windows_phone7 <%= mobile %>
549
- windows_phone8: WEB_BROWSER=windows_phone8 <%= mobile %>
543
+ ipad: WEB_BROWSER=ipad HOST_BROWSER=firefox <%= mobile %>
544
+ ipad_pro: WEB_BROWSER=ipad_pro HOST_BROWSER=firefox <%= mobile %>
545
+ iphone: WEB_BROWSER=iphone HOST_BROWSER=firefox <%= mobile %>
546
+ iphone4: WEB_BROWSER=iphone4 HOST_BROWSER=firefox <%= mobile %>
547
+ iphone5: WEB_BROWSER=iphone5 HOST_BROWSER=firefox <%= mobile %>
548
+ iphone6: WEB_BROWSER=iphone6 HOST_BROWSER=firefox <%= mobile %>
549
+ iphone6_plus: WEB_BROWSER=iphone6_plus HOST_BROWSER=firefox <%= mobile %>
550
+ android_phone: WEB_BROWSER=android_phone HOST_BROWSER=firefox <%= mobile %>
551
+ android_tablet: WEB_BROWSER=android_tablet HOST_BROWSER=firefox <%= mobile %>
552
+ windows_phone7: WEB_BROWSER=windows_phone7 HOST_BROWSER=firefox <%= mobile %>
553
+ windows_phone8: WEB_BROWSER=windows_phone8 HOST_BROWSER=firefox <%= mobile %>
550
554
 
551
555
 
552
556
  #==============
@@ -791,12 +795,12 @@ To specify a locally hosted target browser using a profile at runtime, you use t
791
795
  invoking Cucumber in the command line. For instance, the following command invokes Cucumber and specifies that a local instance of Chrome
792
796
  will be used as the target web browser:
793
797
 
794
- cucumber -p chrome
798
+ $ cucumber -p chrome
795
799
 
796
800
  The following command specifies that Cucumber will run tests against a local instance of Firefox, which will be used to emulate an iPad Pro
797
801
  in landscape orientation:
798
802
 
799
- cucumber -p ipad_pro -p landscape
803
+ $ cucumber -p ipad_pro -p landscape
800
804
 
801
805
  The following command specifies that Cucumber will run tests against a remotely hosted Safari web browser running on an OS X Yosemite
802
806
  virtual machine on the BrowserStack service:
@@ -806,7 +810,7 @@ virtual machine on the BrowserStack service:
806
810
  The following command specifies that Cucumber will run tests against a remotely hosted Mobile Safari web browser on an iPhone 6s Plus in
807
811
  landscape orientation running on the BrowserStack service:
808
812
 
809
- cucumber -p bs_iphone6_plus -p landscape
813
+ $ cucumber -p bs_iphone6_plus -p landscape
810
814
 
811
815
 
812
816
 
@@ -47,8 +47,8 @@ module TestCentricity
47
47
  rescue
48
48
  unless state == obj.checked?
49
49
  check_id = obj.native.attribute('id')
50
- label = first("label[for='#{check_id}']")
51
- label.click if label.exists?
50
+ label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
51
+ label.click unless label.nil?
52
52
  end
53
53
  end
54
54
  end
@@ -47,8 +47,8 @@ module TestCentricity
47
47
  rescue
48
48
  unless state == obj.checked?
49
49
  check_id = obj.native.attribute('id')
50
- label = first("label[for='#{check_id}']")
51
- label.click if label.exists?
50
+ label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
51
+ label.click unless label.nil?
52
52
  end
53
53
  end
54
54
  end
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '0.7.9'
2
+ VERSION = '0.8.0'
3
3
  end
@@ -59,9 +59,17 @@ module TestCentricity
59
59
  Capybara::Selenium::Driver.new(app, :browser => browser.to_sym)
60
60
  when :iphone, :iphone5, :iphone6, :iphone6_plus, :ipad, :ipad_pro, :android_phone, :android_tablet, :windows_phone7, :windows_phone8
61
61
  Environ.set_platform(:mobile)
62
- profile = Selenium::WebDriver::Firefox::Profile.new
63
- profile['general.useragent.override'] = Browsers.mobile_device_agent(browser)
64
- Capybara::Selenium::Driver.new(app, :profile => profile)
62
+ ENV['HOST_BROWSER'] ? host_browser = ENV['HOST_BROWSER'].downcase.to_sym : host_browser = :firefox
63
+ case host_browser
64
+ when :firefox
65
+ profile = Selenium::WebDriver::Firefox::Profile.new
66
+ profile['general.useragent.override'] = Browsers.mobile_device_agent(browser)
67
+ Capybara::Selenium::Driver.new(app, :profile => profile)
68
+ when :chrome
69
+ args = []
70
+ args << "--user-agent='#{Browsers.mobile_device_agent(browser)}'"
71
+ Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => args)
72
+ end
65
73
  else
66
74
  Capybara::Selenium::Driver.new(app, :browser => :firefox)
67
75
  Environ.set_browser('firefox')
@@ -14,9 +14,9 @@ Gem::Specification.new do |spec|
14
14
  spec.description = %q{
15
15
  TestCentricity™ core generic framework for desktop and mobile web site testing implements a Page Object Model DSL,
16
16
  for use with Cucumber, Capybara, and Selenium-Webdriver. Supports testing against locally hosted desktop browsers
17
- (Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a
18
- "headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack, Sauce Labs,
19
- CrossBrowserTesting, or TestingBot services.}
17
+ (Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox or
18
+ Chrome), a "headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack,
19
+ Sauce Labs, CrossBrowserTesting, or TestingBot services.}
20
20
  spec.homepage = ''
21
21
  spec.license = 'BSD3'
22
22
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-20 00:00:00.000000000 Z
11
+ date: 2016-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -146,9 +146,9 @@ description: |2-
146
146
 
147
147
  TestCentricity™ core generic framework for desktop and mobile web site testing implements a Page Object Model DSL,
148
148
  for use with Cucumber, Capybara, and Selenium-Webdriver. Supports testing against locally hosted desktop browsers
149
- (Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a
150
- "headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack, Sauce Labs,
151
- CrossBrowserTesting, or TestingBot services.
149
+ (Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox or
150
+ Chrome), a "headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack,
151
+ Sauce Labs, CrossBrowserTesting, or TestingBot services.
152
152
  email:
153
153
  - test_automation@icloud.com
154
154
  executables: []