testcentricity_web 0.5.7 → 0.5.7.1
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 +4 -4
- data/.yardopts +2 -0
- data/Gemfile +2 -0
- data/README.md +304 -30
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/webdriver_helper.rb +3 -3
- data/testcentricity_web.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9569e27215cf9488a0b1ac757fc3849b50e860f8
|
4
|
+
data.tar.gz: 69d04c8ff6316100bd97a6fcd3c631a007232555
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b58009042ebe9fce1f9376ca46730a5b27574ca0d41ff5050d24a638c3576cd76c47a31518cc12dba11decdd2e98a1817c0b6e48090c47d2ac832077a7fda25
|
7
|
+
data.tar.gz: 5dce0ce7e4600fc7dbc044ef9a267c1e2b790f5e0747aaace568658d4730e77d08d139abc6be1687c0ae05a91b02911af65281abc62ee3cd0d31ad24e583b4db
|
data/.yardopts
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,8 +4,8 @@ The TestCentricity™ core generic framework for desktop and mobile web site tes
|
|
4
4
|
use with Cucumber, Capybara, and selenium-webdriver. It supports testing against locally hosted desktop browsers (Firefox, Chrome, Safari,
|
5
5
|
IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a "headless" browser (using Poltergeist and PhantomJS),
|
6
6
|
or on cloud hosted desktop or mobile web browsers using the BrowserStack, Sauce Labs, or CrossBrowserTesting services.
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
|
9
9
|
## Installation
|
10
10
|
|
11
11
|
Add this line to your automation project's Gemfile:
|
@@ -64,7 +64,7 @@ text field attributes, button captions, etc.), maintenance is performed in the *
|
|
64
64
|
to update the affected feature file, scenarios, or step definitions.
|
65
65
|
|
66
66
|
|
67
|
-
####Defining a Page Object
|
67
|
+
#### - Defining a Page Object
|
68
68
|
|
69
69
|
Your **Page Object** class definitions should be contained within individual *.rb* files in the ***features/support/pages*** folder of your
|
70
70
|
test automation project. You define new **Page Objects** as shown below:
|
@@ -83,7 +83,7 @@ test automation project. You define new **Page Objects** as shown below:
|
|
83
83
|
end
|
84
84
|
|
85
85
|
|
86
|
-
####Adding UI Elements to your Page Object
|
86
|
+
#### - Adding UI Elements to your Page Object
|
87
87
|
|
88
88
|
**UI Elements** are added to your **Page Object** class definition as shown below:
|
89
89
|
|
@@ -108,7 +108,7 @@ below:
|
|
108
108
|
login_page.login_button.click
|
109
109
|
|
110
110
|
|
111
|
-
####Adding Methods to your Page Object
|
111
|
+
#### - Adding Methods to your Page Object
|
112
112
|
|
113
113
|
It is good practice for your Cucumber step definitions to call high level methods in your your **Page Object** instead of directly accessing
|
114
114
|
and interacting with a page object's UI elements. You can add high level methods to your **Page Object** class definition for interacting with
|
@@ -154,7 +154,7 @@ or a menu. **UI Elements** and functional behavior are confined to the scope of
|
|
154
154
|
A **PageSection Object** may contain other **PageSection Objects**.
|
155
155
|
|
156
156
|
|
157
|
-
####Defining a PageSection Object
|
157
|
+
#### - Defining a PageSection Object
|
158
158
|
|
159
159
|
Your **PageSection** class definitions should be contained within individual *.rb* files in the ***features/support/sections*** folder of
|
160
160
|
your test automation project. You define new **PageSection Objects** as shown below:
|
@@ -164,7 +164,7 @@ your test automation project. You define new **PageSection Objects** as shown be
|
|
164
164
|
end
|
165
165
|
|
166
166
|
|
167
|
-
####Adding UI Elements to your PageSection Object
|
167
|
+
#### - Adding UI Elements to your PageSection Object
|
168
168
|
|
169
169
|
**UI Elements** are added to your **PageSection** class definition as shown below:
|
170
170
|
|
@@ -177,7 +177,7 @@ your test automation project. You define new **PageSection Objects** as shown be
|
|
177
177
|
end
|
178
178
|
|
179
179
|
|
180
|
-
####Adding Methods to your PageSection Object
|
180
|
+
#### - Adding Methods to your PageSection Object
|
181
181
|
|
182
182
|
You can add high level methods to your **PageSection** class definition, as shown below:
|
183
183
|
|
@@ -195,7 +195,7 @@ You can add high level methods to your **PageSection** class definition, as show
|
|
195
195
|
end
|
196
196
|
|
197
197
|
|
198
|
-
####Adding PageSection Objects to your Page Object
|
198
|
+
#### - Adding PageSection Objects to your Page Object
|
199
199
|
|
200
200
|
You add a **PageSection Object** to its associated **Page Object** as shown below:
|
201
201
|
|
@@ -244,7 +244,7 @@ The **WorldPages** module above can be defined in your *env.rb* file, or you can
|
|
244
244
|
While this approach is effective for small web applications with only a few pages (and hence few **Page Objects**), it quickly becomes
|
245
245
|
cumbersome to manage if your web application has dozens of **Page Objects** that need to be instantiated and managed.
|
246
246
|
|
247
|
-
####Using the PageManager
|
247
|
+
#### - Using the PageManager
|
248
248
|
|
249
249
|
The **PageManager** class provides methods for supporting the instantiation and management of **Page Objects**. In the code example below,
|
250
250
|
the **page_objects** method contains a hash table of your **Page Object** instance variables and their associated **Page Object** classes
|
@@ -279,6 +279,287 @@ executed:
|
|
279
279
|
|
280
280
|
|
281
281
|
|
282
|
+
### Connecting to a Web Browser
|
283
|
+
|
284
|
+
The ***WebDriverConnect.initialize_web_driver*** method configures the appropriate selenium-webdriver capabilities required to establish a
|
285
|
+
connection with a target web browser, and sets the base host URL of the web site you are running your tests against
|
286
|
+
|
287
|
+
The ***WebDriverConnect.initialize_web_driver*** method accepts a single optional parameter - the base host URL. Cucumber **Environment
|
288
|
+
Variables**are used to specify the target local or remote web browser, and the various webdriver capability parameters required to configure
|
289
|
+
the connection.
|
290
|
+
|
291
|
+
|
292
|
+
#### - Locally hosted desktop web browser
|
293
|
+
|
294
|
+
For locally hosted desktop web browsers, the **WEB_BROWSER** Environment Variable must be set to one of the values from the table below:
|
295
|
+
|
296
|
+
**WEB_BROWSER** | Desktop Platform
|
297
|
+
--------------- | ----------------
|
298
|
+
firefox | OS X or Windows
|
299
|
+
chrome | OS X or Windows
|
300
|
+
safari | OS X only
|
301
|
+
ie | Windows only
|
302
|
+
edge | Windows only
|
303
|
+
poltergeist | OS X or Windows
|
304
|
+
|
305
|
+
|
306
|
+
#### - Locally hosted emulated mobile web browser
|
307
|
+
|
308
|
+
You can also run your tests against emulated mobile device browsers within a locally hosted instance of the Firefox desktop browser. You may
|
309
|
+
even specify the emulated device's screen orientation. For locally hosted emulated mobile web browsers, the **WEB_BROWSER** Environment Variable
|
310
|
+
must be set to one of the values from the table below:
|
311
|
+
|
312
|
+
**WEB_BROWSER** |
|
313
|
+
--------------- |
|
314
|
+
ipad |
|
315
|
+
ipad_pro |
|
316
|
+
iphone |
|
317
|
+
iphone4 |
|
318
|
+
iphone5 |
|
319
|
+
iphone6 |
|
320
|
+
iphone6_plus |
|
321
|
+
android_phone |
|
322
|
+
android_tablet |
|
323
|
+
|
324
|
+
To specify the emulated device's screen orientation, you set the **ORIENTATION** Environment Variable to either *portrait* or *landscape*.
|
325
|
+
|
326
|
+
|
327
|
+
#### - Remotely hosted desktop web browser
|
328
|
+
|
329
|
+
TBD
|
330
|
+
|
331
|
+
|
332
|
+
#### - Using Browser specific Profiles in cucumber.yml
|
333
|
+
|
334
|
+
While you can set **Environment Variables** in the command line when invoking Cucumber, a preferred method of specifying and managing target
|
335
|
+
web browsers is to create browser specific **Profiles** that set the appropriate **Environment Variables** for each target browser in your
|
336
|
+
***cucumber.yml*** file. Below is a list of Cucumber **Profiles** for supported locally and remotely hosted desktop and mobile web browsers
|
337
|
+
(put these in in your ***cucumber.yml*** file):
|
338
|
+
|
339
|
+
<% desktop = "--tags ~@wip --tags ~@failing --tags @desktop --require features" %>
|
340
|
+
<% mobile = "--tags ~@wip --tags ~@failing --tags @mobile --require features" %>
|
341
|
+
|
342
|
+
#==============
|
343
|
+
# profiles for locally hosted desktop web browsers
|
344
|
+
#==============
|
345
|
+
|
346
|
+
firefox: WEB_BROWSER=firefox <%= desktop %>
|
347
|
+
safari: WEB_BROWSER=safari <%= desktop %>
|
348
|
+
chrome: WEB_BROWSER=chrome <%= desktop %>
|
349
|
+
ie: WEB_BROWSER=ie <%= desktop %>
|
350
|
+
edge: WEB_BROWSER=edge <%= desktop %>
|
351
|
+
headless: WEB_BROWSER=poltergeist <%= desktop %>
|
352
|
+
|
353
|
+
#==============
|
354
|
+
# profiles for locally hosted mobile web browsers (emulated locally in Firefox browser)
|
355
|
+
#==============
|
356
|
+
|
357
|
+
ipad: WEB_BROWSER=ipad <%= mobile %>
|
358
|
+
ipad_pro: WEB_BROWSER=ipad_pro <%= mobile %>
|
359
|
+
iphone: WEB_BROWSER=iphone <%= mobile %>
|
360
|
+
iphone4: WEB_BROWSER=iphone4 <%= mobile %>
|
361
|
+
iphone5: WEB_BROWSER=iphone5 <%= mobile %>
|
362
|
+
iphone6: WEB_BROWSER=iphone6 <%= mobile %>
|
363
|
+
iphone6_plus: WEB_BROWSER=iphone6_plus <%= mobile %>
|
364
|
+
android_phone: WEB_BROWSER=android_phone <%= mobile %>
|
365
|
+
android_tablet: WEB_BROWSER=android_tablet <%= mobile %>
|
366
|
+
|
367
|
+
|
368
|
+
#==============
|
369
|
+
# profiles for mobile device screen orientation
|
370
|
+
#==============
|
371
|
+
portrait: ORIENTATION=portrait
|
372
|
+
landscape: ORIENTATION=landscape
|
373
|
+
|
374
|
+
|
375
|
+
#==============
|
376
|
+
# profiles for remotely hosted web browsers on the BrowserStack service
|
377
|
+
#==============
|
378
|
+
|
379
|
+
browserstack: WEB_BROWSER=browserstack BS_USERNAME=<INSERT USER NAME HERE> BS_AUTHKEY=<INSERT PASSWORD HERE>
|
380
|
+
bs_desktop: --profile browserstack <%= desktop %> RESOLUTION="1920x1080"
|
381
|
+
bs_mobile: --profile browserstack <%= mobile %>
|
382
|
+
|
383
|
+
# BrowserStack OS X profiles
|
384
|
+
bs_osx_el_capitan: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="El Capitan"
|
385
|
+
bs_ff_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Firefox"
|
386
|
+
bs_chrome_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Chrome"
|
387
|
+
bs_safari_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Safari" BS_VERSION="9.0"
|
388
|
+
bs_safari9_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Safari" BS_VERSION="9.0"
|
389
|
+
|
390
|
+
bs_osx_yosemite: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Yosemite"
|
391
|
+
bs_ff_yos: --profile bs_osx_yosemite BS_BROWSER="Firefox"
|
392
|
+
bs_chrome_yos: --profile bs_osx_yosemite BS_BROWSER="Chrome"
|
393
|
+
bs_safari_yos: --profile bs_osx_yosemite BS_BROWSER="Safari" BS_VERSION="8.0"
|
394
|
+
bs_safari8_osx: --profile bs_osx_yosemite BS_BROWSER="Safari" BS_VERSION="8.0"
|
395
|
+
|
396
|
+
bs_osx_mavericks: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Mavericks"
|
397
|
+
bs_ff_mav: --profile bs_osx_mavericks BS_BROWSER="Firefox"
|
398
|
+
bs_chrome_mav: --profile bs_osx_mavericks BS_BROWSER="Chrome"
|
399
|
+
bs_safari_mav: --profile bs_osx_mavericks BS_BROWSER="Safari" BS_VERSION="7.0"
|
400
|
+
bs_safari7_osx: --profile bs_osx_mavericks BS_BROWSER="Safari" BS_VERSION="7.0"
|
401
|
+
|
402
|
+
# BrowserStack Windows profiles
|
403
|
+
bs_win7: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="7"
|
404
|
+
bs_win8: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="8.1"
|
405
|
+
bs_win10: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="10"
|
406
|
+
bs_ff_win7: --profile bs_win7 BS_BROWSER="Firefox"
|
407
|
+
bs_ff_win8: --profile bs_win8 BS_BROWSER="Firefox"
|
408
|
+
bs_ff_win10: --profile bs_win10 BS_BROWSER="Firefox"
|
409
|
+
bs_chrome_win7: --profile bs_win7 BS_BROWSER="Chrome"
|
410
|
+
bs_chrome_win8: --profile bs_win8 BS_BROWSER="Chrome"
|
411
|
+
bs_chrome_win10: --profile bs_win10 BS_BROWSER="Chrome"
|
412
|
+
|
413
|
+
bs_ie_win7: --profile bs_win7 BS_BROWSER="IE"
|
414
|
+
bs_ie11_win7: --profile bs_ie_win7 BS_VERSION="11.0"
|
415
|
+
bs_ie10_win7: --profile bs_ie_win7 BS_VERSION="10.0"
|
416
|
+
bs_ie9_win7: --profile bs_ie_win7 BS_VERSION="9.0"
|
417
|
+
bs_ie11_win8: --profile bs_win8 BS_BROWSER="IE" BS_VERSION="11.0"
|
418
|
+
bs_ie10_win8: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="8.0" BS_BROWSER="IE" BS_VERSION="10.0"
|
419
|
+
bs_ie11_win10: --profile bs_win10 BS_BROWSER="IE" BS_VERSION="11.0"
|
420
|
+
bs_edge_win10: --profile bs_win10 BS_BROWSER="Edge" BS_VERSION="13.0"
|
421
|
+
|
422
|
+
# BrowserStack iOS profiles
|
423
|
+
bs_iphone: --profile bs_mobile BS_PLATFORM=MAC BS_BROWSER=iPhone
|
424
|
+
bs_ipad: --profile bs_mobile BS_PLATFORM=MAC BS_BROWSER=iPad
|
425
|
+
bs_iphone6_plus: --profile bs_iphone BS_DEVICE="iPhone 6S Plus"
|
426
|
+
bs_iphone6: --profile bs_iphone BS_DEVICE="iPhone 6S"
|
427
|
+
bs_iphone5s: --profile bs_iphone BS_DEVICE="iPhone 5S"
|
428
|
+
bs_iphone4s: --profile bs_iphone BS_DEVICE="iPhone 4S (6.0)"
|
429
|
+
bs_ipad_pro: --profile bs_ipad BS_DEVICE="iPad Pro"
|
430
|
+
bs_ipad_air: --profile bs_ipad BS_DEVICE="iPad Air 2"
|
431
|
+
bs_ipad_mini: --profile bs_ipad BS_DEVICE="iPad Mini 4"
|
432
|
+
|
433
|
+
# BrowserStack Android profiles
|
434
|
+
bs_android: --profile bs_mobile BS_PLATFORM=ANDROID BS_BROWSER=android
|
435
|
+
bs_galaxy_s5: --profile bs_android BS_DEVICE="Samsung Galaxy S5"
|
436
|
+
bs_kindle_fire: --profile bs_android BS_DEVICE="Amazon Kindle Fire HDX 7"
|
437
|
+
bs_nexus5: --profile bs_android BS_DEVICE="Google Nexus 5"
|
438
|
+
bs_moto_razr: --profile bs_android BS_DEVICE="Motorola Razr"
|
439
|
+
bs_sony_xperia: --profile bs_android BS_DEVICE="Sony Xperia Tipo"
|
440
|
+
|
441
|
+
|
442
|
+
#==============
|
443
|
+
# profiles for remotely hosted web browsers on the CrossBrowserTesting service
|
444
|
+
#==============
|
445
|
+
|
446
|
+
crossbrowser: WEB_BROWSER=crossbrowser CB_USERNAME=<INSERT USER NAME HERE> CB_AUTHKEY=<INSERT PASSWORD HERE>
|
447
|
+
cb_desktop: --profile crossbrowser <%= desktop %>
|
448
|
+
cb_mobile: --profile crossbrowser <%= mobile %>
|
449
|
+
|
450
|
+
# CrossBrowserTesting OS X profiles
|
451
|
+
cb_osx: --profile cb_desktop RESOLUTION="1920x1200"
|
452
|
+
cb_osx_el_capitan: --profile cb_osx CB_OS="Mac10.11"
|
453
|
+
cb_ff_el_cap: --profile cb_osx_el_capitan CB_BROWSER="FF44"
|
454
|
+
cb_chrome_el_cap: --profile cb_osx_el_capitan CB_BROWSER="Chrome48x64"
|
455
|
+
cb_safari_el_cap: --profile cb_osx_el_capitan CB_BROWSER="Safari9"
|
456
|
+
cb_safari9_el_cap: --profile cb_osx_el_capitan CB_BROWSER="Safari9"
|
457
|
+
|
458
|
+
cb_osx_yosemite: --profile cb_osx CB_OS="Mac10.10"
|
459
|
+
cb_ff_yos: --profile cb_osx_yosemite CB_BROWSER="FF44"
|
460
|
+
cb_chrome_yos: --profile cb_osx_yosemite CB_BROWSER="Chrome48x64"
|
461
|
+
cb_safari_yos: --profile cb_osx_yosemite CB_BROWSER="Safari8"
|
462
|
+
cb_safari8_osx: --profile cb_osx_yosemite CB_BROWSER="Safari8"
|
463
|
+
|
464
|
+
cb_osx_mavericks: --profile cb_osx CB_OS="Mac10.9"
|
465
|
+
cb_ff_mav: --profile cb_osx_mavericks CB_BROWSER="FF43"
|
466
|
+
cb_chrome_mav: --profile cb_osx_mavericks CB_BROWSER="Chrome48x64"
|
467
|
+
cb_safari_mav: --profile cb_osx_mavericks CB_BROWSER="Safari7"
|
468
|
+
cb_safari7_osx: --profile cb_osx_mavericks CB_BROWSER="Safari7"
|
469
|
+
|
470
|
+
# CrossBrowserTesting Windows profiles
|
471
|
+
cb_win: --profile cb_desktop RESOLUTION="1920x1080"
|
472
|
+
cb_win7: --profile cb_win CB_OS="Win7x64-C1"
|
473
|
+
cb_win8: --profile cb_win CB_OS="Win8"
|
474
|
+
cb_win10: --profile cb_win CB_OS="Win10"
|
475
|
+
cb_ff_win7: --profile cb_win7 CB_BROWSER="FF44"
|
476
|
+
cb_ff_win8: --profile cb_win8 CB_BROWSER="FF44"
|
477
|
+
cb_ff_win10: --profile cb_win10 CB_BROWSER="FF44"
|
478
|
+
cb_chrome_win7: --profile cb_win7 CB_BROWSER="Chrome48x64"
|
479
|
+
cb_chrome_win8: --profile cb_win8 CB_BROWSER="Chrome48x64"
|
480
|
+
cb_chrome_win10: --profile cb_win10 CB_BROWSER="Chrome48x64"
|
481
|
+
|
482
|
+
cb_ie11_win7: --profile cb_win7 CB_BROWSER="IE11"
|
483
|
+
cb_ie10_win7: --profile cb_win7 CB_BROWSER="IE10"
|
484
|
+
cb_ie9_win7: --profile cb_win7 CB_BROWSER="IE9"
|
485
|
+
cb_ie11_win8: --profile cb_win8 CB_BROWSER="IE11"
|
486
|
+
cb_ie10_win8: --profile cb_win8 CB_BROWSER="IE10"
|
487
|
+
cb_ie11_win10: --profile cb_win10 CB_BROWSER="IE11"
|
488
|
+
|
489
|
+
# CrossBrowserTesting iOS profiles
|
490
|
+
cb_iphone6_plus: --profile cb_mobile CB_PLATFORM="iPhone6Plus-iOS8sim" CB_BROWSER="MblSafari8.0" RESOLUTION="1080x1920"
|
491
|
+
cb_iphone6: --profile cb_mobile CB_PLATFORM="iPhone6-iOS8sim" CB_BROWSER="MblSafari8.0" RESOLUTION="750x1334"
|
492
|
+
cb_iphone5s: --profile cb_mobile CB_PLATFORM="iPhone5s-iOS7sim" CB_BROWSER="MblSafari7.0" RESOLUTION="640x1136"
|
493
|
+
cb_ipad_air: --profile cb_mobile CB_PLATFORM="iPadAir-iOS8Sim" CB_BROWSER="MblSafari8.0" RESOLUTION="1024x768"
|
494
|
+
cb_ipad_mini: --profile cb_mobile CB_PLATFORM="iPadMiniRetina-iOS7Sim" CB_BROWSER="MblSafari7.0" RESOLUTION="1024x768"
|
495
|
+
|
496
|
+
# CrossBrowserTesting Android profiles
|
497
|
+
cb_nexus7: --profile cb_mobile CB_PLATFORM="Nexus7-And42" CB_BROWSER="MblChrome37" RESOLUTION="800x1280"
|
498
|
+
cb_galaxy_tab2: --profile cb_mobile CB_PLATFORM="GalaxyTab2-And41" CB_BROWSER="MblChrome38" RESOLUTION="1280x800"
|
499
|
+
cb_galaxy_s5: --profile cb_mobile CB_PLATFORM="GalaxyS5-And44" CB_BROWSER="MblChrome35" RESOLUTION="1080x1920"
|
500
|
+
cb_galaxy_s4: --profile cb_mobile CB_PLATFORM="GalaxyS4-And42" CB_BROWSER="MblChrome33" RESOLUTION="1080x1920"
|
501
|
+
cb_galaxy_s3: --profile cb_mobile CB_PLATFORM="GalaxyS3-And41" CB_BROWSER="MblChrome34" RESOLUTION="720x1280"
|
502
|
+
|
503
|
+
|
504
|
+
#==============
|
505
|
+
# profiles for remotely hosted web browsers on the SauceLabs service
|
506
|
+
#==============
|
507
|
+
|
508
|
+
saucelabs: WEB_BROWSER=saucelabs SL_USERNAME=<INSERT USER NAME HERE> SL_AUTHKEY=<INSERT PASSWORD HERE>
|
509
|
+
sl_desktop: --profile saucelabs <%= desktop %>
|
510
|
+
sl_mobile: --profile saucelabs <%= mobile %>
|
511
|
+
|
512
|
+
# SauceLabs OS X profiles
|
513
|
+
sl_osx_el_capitan: --profile sl_desktop SL_OS="OS X 10.11"
|
514
|
+
sl_ff_el_cap: --profile sl_osx_el_capitan SL_BROWSER="firefox"
|
515
|
+
sl_chrome_el_cap: --profile sl_osx_el_capitan SL_BROWSER="chrome"
|
516
|
+
sl_safari_el_cap: --profile sl_osx_el_capitan SL_BROWSER="safari"
|
517
|
+
sl_safari9_el_cap: --profile sl_osx_el_capitan SL_BROWSER="safari"
|
518
|
+
|
519
|
+
sl_osx_yosemite: --profile sl_desktop SL_OS="OS X 10.10" RESOLUTION="1920x1200"
|
520
|
+
sl_ff_yos: --profile sl_osx_yosemite SL_BROWSER="firefox"
|
521
|
+
sl_chrome_yos: --profile sl_osx_yosemite SL_BROWSER="chrome"
|
522
|
+
sl_safari_yos: --profile sl_osx_yosemite SL_BROWSER="safari"
|
523
|
+
sl_safari8_osx: --profile sl_osx_yosemite SL_BROWSER="safari"
|
524
|
+
|
525
|
+
sl_osx_mavericks: --profile sl_desktop SL_OS="OS X 10.9" RESOLUTION="1920x1200"
|
526
|
+
sl_ff_mav: --profile sl_osx_mavericks SL_BROWSER="firefox"
|
527
|
+
sl_chrome_mav: --profile sl_osx_mavericks SL_BROWSER="chrome"
|
528
|
+
sl_safari_mav: --profile sl_osx_mavericks SL_BROWSER="safari"
|
529
|
+
sl_safari7_osx: --profile sl_osx_mavericks SL_BROWSER="safari"
|
530
|
+
|
531
|
+
# SauceLabs Windows profiles
|
532
|
+
sl_win7: --profile sl_desktop SL_OS="Windows 7" RESOLUTION="1920x1200"
|
533
|
+
sl_win8: --profile sl_desktop SL_OS="Windows 8.1" RESOLUTION="1280x1024"
|
534
|
+
sl_win10: --profile sl_desktop SL_OS="Windows 10" RESOLUTION="1280x1024"
|
535
|
+
sl_ff_win7: --profile sl_win7 SL_BROWSER="firefox"
|
536
|
+
sl_ff_win8: --profile sl_win8 SL_BROWSER="firefox"
|
537
|
+
sl_ff_win10: --profile sl_win10 SL_BROWSER="firefox"
|
538
|
+
sl_chrome_win7: --profile sl_win7 SL_BROWSER="chrome"
|
539
|
+
sl_chrome_win8: --profile sl_win8 SL_BROWSER="chrome"
|
540
|
+
sl_chrome_win10: --profile sl_win10 SL_BROWSER="chrome"
|
541
|
+
|
542
|
+
sl_ie11_win7: --profile sl_win7 SL_BROWSER="internet explorer" SL_VERSION="11.0"
|
543
|
+
sl_ie10_win7: --profile sl_win7 SL_BROWSER="internet explorer" SL_VERSION="10.0"
|
544
|
+
sl_ie9_win7: --profile sl_win7 SL_BROWSER="internet explorer" SL_VERSION="9.0"
|
545
|
+
sl_ie11_win8: --profile sl_win8 SL_BROWSER="internet explorer" SL_VERSION="11.0"
|
546
|
+
sl_ie11_win10: --profile sl_win10 SL_BROWSER="internet explorer"
|
547
|
+
|
548
|
+
# SauceLabs iOS profiles
|
549
|
+
sl_ios: --profile sl_mobile SL_PLATFORM=OS X 10.10 SL_BROWSER="iphone" SL_VERSION="9.2"
|
550
|
+
sl_iphone6_plus: --profile sl_ios SL_DEVICE="iPhone 6 Plus"
|
551
|
+
sl_iphone6: --profile sl_ios SL_DEVICE="iPhone 6"
|
552
|
+
sl_iphone5s: --profile sl_ios SL_DEVICE="iPhone 5s"
|
553
|
+
sl_iphone4s: --profile sl_ios SL_DEVICE="iPhone 4s"
|
554
|
+
sl_ipad_air: --profile sl_ios SL_DEVICE="iPad Air"
|
555
|
+
|
556
|
+
# SauceLabs Android profiles
|
557
|
+
sl_android: --profile sl_mobile SL_PLATFORM=Linux SL_BROWSER="android" SL_VERSION="4.4"
|
558
|
+
sl_android_phone: --profile sl_android SL_DEVICE="Android Emulator" SL_DEVICE_TYPE="phone"
|
559
|
+
sl_android_tablet: --profile sl_android SL_DEVICE="Android Emulator" SL_DEVICE_TYPE="tablet"
|
560
|
+
|
561
|
+
|
562
|
+
|
282
563
|
|
283
564
|
|
284
565
|
## Copyright and License
|
@@ -287,27 +568,20 @@ TestCentricity™ Framework is Copyright (c) 2014-2016, Tony Mrozinski.
|
|
287
568
|
All rights reserved.
|
288
569
|
|
289
570
|
|
290
|
-
Redistribution and use in source and binary forms, with or without
|
291
|
-
|
571
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
|
572
|
+
are met:
|
292
573
|
|
293
|
-
1. Redistributions of source code must retain the above copyright notice,
|
294
|
-
this list of conditions, and the following disclaimer.
|
574
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
|
295
575
|
|
296
|
-
2. Redistributions in binary form must reproduce the above copyright
|
297
|
-
|
298
|
-
documentation and/or other materials provided with the distribution.
|
576
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in
|
577
|
+
the documentation and/or other materials provided with the distribution.
|
299
578
|
|
300
|
-
3. Neither the name of the copyright holder nor the names of its contributors
|
301
|
-
|
302
|
-
specific prior written permission.
|
579
|
+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from
|
580
|
+
this software without specific prior written permission.
|
303
581
|
|
304
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
311
|
-
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
312
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
313
|
-
POSSIBILITY OF SUCH DAMAGE.
|
582
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
583
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
584
|
+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
585
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
586
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
587
|
+
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module TestCentricity
|
2
|
-
|
2
|
+
module WebDriverConnect
|
3
3
|
include Capybara::DSL
|
4
4
|
|
5
|
-
def self.initialize_web_driver(app_host)
|
5
|
+
def self.initialize_web_driver(app_host = nil)
|
6
6
|
browser = ENV['WEB_BROWSER']
|
7
7
|
|
8
8
|
# assume that we're testing within a local desktop web browser
|
@@ -24,7 +24,7 @@ module TestCentricity
|
|
24
24
|
initialize_local_browser(browser)
|
25
25
|
end
|
26
26
|
|
27
|
-
Capybara.app_host = app_host
|
27
|
+
Capybara.app_host = app_host unless app_host.nil?
|
28
28
|
|
29
29
|
# set browser window size only if testing with a desktop web browser
|
30
30
|
unless Capybara.current_driver == :poltergeist
|
data/testcentricity_web.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.required_ruby_version = '>= 2.1.1'
|
11
11
|
spec.authors = ['A.J. Mrozinski']
|
12
12
|
spec.email = ['test_automation@icloud.com']
|
13
|
-
spec.summary = %q{A Page Object and Data Object Model Framework for desktop and
|
13
|
+
spec.summary = %q{A Page Object and Data Object Model Framework for desktop and mobile web testing}
|
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
|
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.5.7
|
4
|
+
version: 0.5.7.1
|
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-03-
|
11
|
+
date: 2016-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- ".idea/misc.xml"
|
162
162
|
- ".idea/modules.xml"
|
163
163
|
- ".idea/vcs.xml"
|
164
|
+
- ".yardopts"
|
164
165
|
- Gemfile
|
165
166
|
- LICENSE.txt
|
166
167
|
- README.md
|
@@ -204,7 +205,7 @@ rubyforge_project:
|
|
204
205
|
rubygems_version: 2.2.2
|
205
206
|
signing_key:
|
206
207
|
specification_version: 4
|
207
|
-
summary: A Page Object and Data Object Model Framework for desktop and
|
208
|
-
|
208
|
+
summary: A Page Object and Data Object Model Framework for desktop and mobile web
|
209
|
+
testing
|
209
210
|
test_files: []
|
210
211
|
has_rdoc:
|