testcentricity_web 4.4.1 → 4.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20ddb032add01d0bf8cbd1b2e5edfa456b31b3898dca0a1888720aa7cb23362a
4
- data.tar.gz: 149f1b14ff524c3eb825081d5f6e695e4695dabefb1ac5218c9b91a38f33718f
3
+ metadata.gz: e92bc217ff919e7d3d53cd50cf535636d62e13a71314608d2942c104e3438a29
4
+ data.tar.gz: 2a7aeb90967173c977ceddf1cc61f3f10e17d5d4420a2cf666b53431d9482907
5
5
  SHA512:
6
- metadata.gz: 93826b487631ebe3060aa63165333bbddfdbbca89e07e2d48984afe8880ac14c09f00cffa779c3de51fd35f0f2bfe0e7961aea3a433a166b209bed2f4e53303d
7
- data.tar.gz: 355fcb18b798e95e79d28d5b0800bbb64a17d431e20db8fd750c56480d74f655246d81259a8546143a30026c9c9aa6fca908c9a9dc89271070f66988d37f1437
6
+ metadata.gz: f9cabcb32923ec4a5fb41bcc469ceb27118900b5feb54f88d16d623c8b70ecef2a80ecce52f12716ae629dee9b0fd6ed7b97971cb1c3c5878dc2b54d532cf4b6
7
+ data.tar.gz: 2b112b60bee132159ef62204065976ff92ee28b60c47c007946a2501831d9c18f34230338fedadac266dd76f80ac411354f44b07ac6c76c0982c91c9d5bd3665
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.4.2] - 22-DEC-2023
6
+
7
+ ### Added
8
+ * Added support for specifying and connecting to web browsers on unsupported cloud hosting services using `custom` user-
9
+ defined driver and capabilities.
10
+
11
+
5
12
  ## [4.4.0] - 22-DEC-2023
6
13
 
7
14
  ### Added
data/README.md CHANGED
@@ -2739,6 +2739,74 @@ test configuration options.
2739
2739
  WebDriverConnect.initialize_web_driver(options)
2740
2740
 
2741
2741
 
2742
+ #### Remote Browsers on Unsupported Cloud Hosting Services
2743
+
2744
+ Limited support is provided for executing automated tests against remotely hosted desktop and mobile web browsers on currently
2745
+ unsupported cloud hosting services. You must call the `TestCentricity::WebDriverConnect.initialize_web_driver` method with
2746
+ an `options` hash - Environment Variables cannot be used to specify a user-defined custom WebDriver instance.
2747
+
2748
+ The following options and capabilities must be specified:
2749
+ - `driver:` must be set to `:custom`
2750
+ - `endpoint:` must be set to the endpoint URL configuration specified by the hosting service
2751
+ - `browserName:` in the `capabilities:` hash must be set to name from capability specified by the hosting service
2752
+
2753
+ All other required capabilities specified by the hosting service configuration documentation should be included in the
2754
+ `capabilities:` hash.
2755
+
2756
+ options = {
2757
+ driver: :custom,
2758
+ endpoint: endpoint_url,
2759
+ capabilities: { browserName: browser_name_from_chart }
2760
+ }
2761
+ WebDriverConnect.initialize_web_driver(options)
2762
+
2763
+ ℹ️ If an optional user defined `driver_name:` is not specified in the `options` hash, the default driver name will be set to
2764
+ `:custom_<browserName>` - e.g. `:custom_chrome` or `:custom_safari`.
2765
+
2766
+ Prior to calling the `TestCentricity::WebDriverConnect.initialize_web_driver` method, you must set `Environ.platform` to
2767
+ either `:desktop` or `:mobile`, and `Environ.device` to either `:web` or `:device` dependent on whether the target browser
2768
+ is a desktop browser or a mobile browser running on a mobile device or simulator.
2769
+
2770
+ Below is an example for specifying a connection to a Firefox desktop web browser on an unsupported hosting service:
2771
+
2772
+ # specify desktop platform
2773
+ Environ.platform = :desktop
2774
+ Environ.device = :web
2775
+ # instantiate a cloud hosted desktop web browser on an unsupported hosting service
2776
+ options = {
2777
+ driver: :custom,
2778
+ driver_name: :user_defined,
2779
+ browser_size: [1400, 1100],
2780
+ endpoint: endpoint_url,
2781
+ capabilities: {
2782
+ browserName: 'Firefox',
2783
+ browser_version: browser_version_from_chart
2784
+ # other capabilities go here
2785
+ }
2786
+ }
2787
+ WebDriverConnect.initialize_web_driver(options)
2788
+
2789
+ Below is an example for specifying a connection to a mobile Safari web browser running on an iPad on an unsupported hosting
2790
+ service:
2791
+
2792
+ # specify mobile platform, device type, and device name
2793
+ Environ.platform = :mobile
2794
+ Environ.device = :device
2795
+ Environ.device_name = device_name_from_chart
2796
+ # instantiate a cloud hosted mobile browser on a device on an unsupported hosting service
2797
+ options = {
2798
+ driver: :custom,
2799
+ driver_name: :user_defined,
2800
+ device_type: :tablet,
2801
+ endpoint: endpoint_url,
2802
+ capabilities: {
2803
+ browserName: 'Safari',
2804
+ # other capabilities go here
2805
+ }
2806
+ }
2807
+ WebDriverConnect.initialize_web_driver(options)
2808
+
2809
+
2742
2810
  ### Closing Browser and Driver Instances
2743
2811
 
2744
2812
  #### Closing Instances Using Cucumber
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.4.1'
2
+ VERSION = '4.4.2'
3
3
  end
@@ -43,7 +43,11 @@ module TestCentricity
43
43
  Environ.browser = ENV['WEB_BROWSER'] if ENV['WEB_BROWSER']
44
44
  Environ.device_orientation = ENV['ORIENTATION'] if ENV['ORIENTATION']
45
45
  else
46
- Environ.browser = @capabilities[:browserName]
46
+ if @capabilities[:browserName]
47
+ Environ.browser = @capabilities[:browserName]
48
+ else
49
+ raise 'Missing :browserName in @capabilities'
50
+ end
47
51
  Environ.device_orientation = @capabilities[:orientation] if @capabilities[:orientation]
48
52
  Environ.device_orientation = @capabilities[:'appium:orientation'] if @capabilities[:'appium:orientation']
49
53
  end
@@ -51,10 +55,12 @@ module TestCentricity
51
55
  Environ.driver = :webdriver if Environ.driver.nil?
52
56
  Environ.device_type = ENV['DEVICE_TYPE'] if ENV['DEVICE_TYPE']
53
57
  # assume that we're testing within a local desktop web browser
54
- Environ.platform = :desktop
55
- Environ.headless = false
56
- Environ.device = :web
57
- Environ.device_name = 'browser'
58
+ unless Environ.driver == :custom
59
+ Environ.platform = :desktop
60
+ Environ.headless = false
61
+ Environ.device = :web
62
+ Environ.device_name = 'browser'
63
+ end
58
64
 
59
65
  context = case Environ.driver
60
66
  when :appium
@@ -80,6 +86,11 @@ module TestCentricity
80
86
  initialize_lambdatest
81
87
  'LambdaTest cloud service'
82
88
  # :nocov:
89
+ when :custom
90
+ raise 'User-defined webdriver requires that you define options' if options.nil?
91
+
92
+ initialize_custom_driver
93
+ 'custom user-defined webdriver'
83
94
  else
84
95
  raise "#{Environ.driver} is not a supported driver"
85
96
  end
@@ -683,6 +694,15 @@ module TestCentricity
683
694
  end
684
695
  # :nocov:
685
696
 
697
+ def self.initialize_custom_driver
698
+ raise 'User-defined webdriver requires that you provide capabilities' if @capabilities.nil?
699
+ raise 'User-defined webdriver requires that you provide an endpoint' if @endpoint.nil?
700
+
701
+ Environ.browser = @capabilities[:browserName]
702
+ Environ.grid = :custom
703
+ register_remote_driver(Environ.browser, @capabilities)
704
+ end
705
+
686
706
  def self.chrome_edge_options(browser)
687
707
  options = case browser
688
708
  when :chrome, :chrome_headless
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: 4.4.1
4
+ version: 4.4.2
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: 2023-12-22 00:00:00.000000000 Z
11
+ date: 2023-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -376,7 +376,7 @@ metadata:
376
376
  changelog_uri: https://github.com/TestCentricity/testcentricity_web/blob/main/CHANGELOG.md
377
377
  bug_tracker_uri: https://github.com/TestCentricity/testcentricity_web/issues
378
378
  wiki_uri: https://github.com/TestCentricity/testcentricity_web/wiki
379
- documentation_uri: https://www.rubydoc.info/gems/testcentricity_web/4.4.1
379
+ documentation_uri: https://www.rubydoc.info/gems/testcentricity_web
380
380
  post_install_message:
381
381
  rdoc_options: []
382
382
  require_paths: