percy-appium-app 0.0.1 → 0.0.2.pre.beta.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,13 +5,15 @@ require_relative '../metadata/metadata_resolver'
5
5
  require_relative 'app_automate'
6
6
  require_relative 'generic_provider'
7
7
 
8
- class ProviderResolver
9
- def self.resolve(driver)
10
- metadata = MetadataResolver.resolve(driver)
11
- providers = [AppAutomate, GenericProvider]
12
- providers.each do |provider|
13
- return provider.new(driver, metadata) if provider.supports(metadata.remote_url)
8
+ module Percy
9
+ class ProviderResolver
10
+ def self.resolve(driver)
11
+ metadata = Percy::MetadataResolver.resolve(driver)
12
+ providers = [Percy::AppAutomate, Percy::GenericProvider]
13
+ providers.each do |provider|
14
+ return provider.new(driver, metadata) if provider.supports(metadata.remote_url)
15
+ end
16
+ raise UnknownProvider
14
17
  end
15
- raise UnknownProvider
16
18
  end
17
19
  end
data/percy/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Percy
4
- VERSION = '0.0.1'.freeze
4
+ VERSION = '0.0.2-beta.0'.freeze
5
5
  end
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.require_paths = ['percy']
27
27
 
28
28
  spec.add_runtime_dependency 'appium_lib', '~> 12.0'
29
+ spec.add_runtime_dependency 'dotenv', '~> 2.8'
29
30
 
30
31
  spec.add_development_dependency 'bundler', '~> 2.4'
31
32
  spec.add_development_dependency 'minitest', '~> 5.20'
@@ -1,19 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
-
5
3
  require 'minitest/autorun'
6
4
  require 'minitest/mock'
7
5
  require 'appium_lib'
8
6
  require_relative 'mocks/mock_methods'
9
7
  require_relative '../percy/metadata/android_metadata'
10
8
 
11
- # Test suite for the AndroidMetadata class
9
+ # Test suite for the Percy::AndroidMetadata class
12
10
  class TestAndroidMetadata < Minitest::Test
13
11
  def setup
14
12
  @mock_webdriver = Minitest::Mock.new
15
13
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
16
- @android_metadata = AndroidMetadata.new(@mock_webdriver)
14
+ @android_metadata = Percy::AndroidMetadata.new(@mock_webdriver)
17
15
  end
18
16
 
19
17
  def test_android_execute_script
@@ -1,23 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
- # rubocop:disable Metrics/AbcSize
5
-
6
3
  require 'minitest/autorun'
7
4
  require 'minitest/mock'
8
5
  require_relative '../percy/providers/app_automate'
9
6
  require_relative '../percy/metadata/android_metadata'
10
7
  require_relative 'mocks/mock_methods'
11
8
 
12
- # Test suite for the AppAutomate class
9
+ # Test suite for the Percy::AppAutomate class
13
10
  class TestAppAutomate < Minitest::Test
14
11
  COMPARISON_RESPONSE = { 'success' => true, 'link' => 'https://snapshots-url' }.freeze
15
12
 
16
13
  def setup
17
14
  @mock_webdriver = Minitest::Mock.new
18
15
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
19
- @metadata = AndroidMetadata.new(@mock_webdriver)
20
- @app_automate = AppAutomate.new(@mock_webdriver, @metadata)
16
+ @metadata = Percy::AndroidMetadata.new(@mock_webdriver)
17
+ @app_automate = Percy::AppAutomate.new(@mock_webdriver, @metadata)
21
18
  end
22
19
 
23
20
  def test_app_automate_get_debug_url
@@ -28,18 +25,18 @@ class TestAppAutomate < Minitest::Test
28
25
  end
29
26
 
30
27
  def test_app_automate_supports_with_correct_url
31
- app_automate_session = AppAutomate.supports('https://hub-cloud.browserstack.com/wd/hub')
28
+ app_automate_session = Percy::AppAutomate.supports('https://hub-cloud.browserstack.com/wd/hub')
32
29
  assert_equal true, app_automate_session
33
30
  end
34
31
 
35
32
  def test_app_automate_supports_with_incorrect_url
36
- app_automate_session = AppAutomate.supports('https://hub-cloud.generic.com/wd/hub')
33
+ app_automate_session = Percy::AppAutomate.supports('https://hub-cloud.generic.com/wd/hub')
37
34
  assert_equal false, app_automate_session
38
35
  end
39
36
 
40
37
  def test_app_automate_supports_with_AA_DOMAIN
41
38
  ENV['AA_DOMAIN'] = 'bsstag'
42
- app_automate_session = AppAutomate.supports('bsstag.com')
39
+ app_automate_session = Percy::AppAutomate.supports('bsstag.com')
43
40
  assert_equal true, app_automate_session
44
41
  ENV['AA_DOMAIN'] = nil
45
42
  end
@@ -80,23 +77,23 @@ class TestAppAutomate < Minitest::Test
80
77
  end
81
78
 
82
79
  def test_get_tiles
83
- # Mocking Metadata's session_id method
80
+ # Mocking Percy::Metadata's session_id method
84
81
  metadata_mock = Minitest::Mock.new
85
82
  metadata_mock.expect(:session_id, 'session_id_123')
86
83
 
87
- # Mocking AndroidMetadata's methods
84
+ # Mocking Percy::AndroidMetadata's methods
88
85
  android_metadata_mock = Minitest::Mock.new
89
86
  android_metadata_mock.expect(:device_screen_size, { 'width' => 1080, 'height' => 1920 })
90
87
  android_metadata_mock.expect(:navigation_bar_height, 150)
91
88
  android_metadata_mock.expect(:status_bar_height, 100)
92
89
 
93
- Metadata.class_eval do
90
+ Percy::Metadata.class_eval do
94
91
  define_method(:session_id) do
95
92
  metadata_mock.session_id
96
93
  end
97
94
  end
98
95
 
99
- AndroidMetadata.class_eval do
96
+ Percy::AndroidMetadata.class_eval do
100
97
  define_method(:device_screen_size) do
101
98
  android_metadata_mock.device_screen_size
102
99
  end
data/specs/app_percy.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
-
5
3
  require 'minitest/autorun'
6
4
  # require 'webmock/minitest'
7
5
  require_relative '../percy/lib/app_percy'
@@ -12,7 +10,7 @@ require_relative '../percy/providers/generic_provider'
12
10
  require_relative '../percy/lib/cli_wrapper'
13
11
  require_relative 'mocks/mock_methods'
14
12
 
15
- # Test suite for the AppPercy class
13
+ # Test suite for the Percy::AppPercy class
16
14
  class TestAppPercy < Minitest::Test
17
15
  COMPARISON_RESPONSE = { 'link' => 'https://snapshot_url', 'success' => true }.freeze
18
16
 
@@ -38,10 +36,10 @@ class TestAppPercy < Minitest::Test
38
36
 
39
37
  ENV['PERCY_DISABLE_REMOTE_UPLOADS'] = 'true'
40
38
 
41
- app_percy = AppPercy.new(@mock_android_webdriver)
39
+ app_percy = Percy::AppPercy.new(@mock_android_webdriver)
42
40
 
43
- assert_instance_of(AndroidMetadata, app_percy.metadata)
44
- assert_instance_of(AppAutomate, app_percy.provider)
41
+ assert_instance_of(Percy::AndroidMetadata, app_percy.metadata)
42
+ assert_instance_of(Percy::AppAutomate, app_percy.provider)
45
43
  end
46
44
 
47
45
  def test_android_on_non_app_automate
@@ -57,9 +55,9 @@ class TestAppPercy < Minitest::Test
57
55
  5.times do
58
56
  @mock_android_webdriver.expect(:capabilities, get_android_capabilities)
59
57
  end
60
- app_percy = AppPercy.new(@mock_android_webdriver)
61
- assert_instance_of(AndroidMetadata, app_percy.metadata)
62
- assert_instance_of(GenericProvider, app_percy.provider)
58
+ app_percy = Percy::AppPercy.new(@mock_android_webdriver)
59
+ assert_instance_of(Percy::AndroidMetadata, app_percy.metadata)
60
+ assert_instance_of(Percy::GenericProvider, app_percy.provider)
63
61
  end
64
62
 
65
63
  def test_ios_on_app_automate
@@ -68,9 +66,9 @@ class TestAppPercy < Minitest::Test
68
66
  5.times do
69
67
  @mock_ios_webdriver.expect(:capabilities, get_ios_capabilities)
70
68
  end
71
- app_percy = AppPercy.new(@mock_ios_webdriver)
72
- assert_instance_of(IOSMetadata, app_percy.metadata)
73
- assert_instance_of(AppAutomate, app_percy.provider)
69
+ app_percy = Percy::AppPercy.new(@mock_ios_webdriver)
70
+ assert_instance_of(Percy::IOSMetadata, app_percy.metadata)
71
+ assert_instance_of(Percy::AppAutomate, app_percy.provider)
74
72
  end
75
73
 
76
74
  def test_ios_on_non_app_automate
@@ -84,16 +82,16 @@ class TestAppPercy < Minitest::Test
84
82
  3.times do
85
83
  @mock_ios_webdriver.expect(:capabilities, get_ios_capabilities)
86
84
  end
87
- app_percy = AppPercy.new(@mock_ios_webdriver)
88
- assert_instance_of(IOSMetadata, app_percy.metadata)
89
- assert_instance_of(GenericProvider, app_percy.provider)
85
+ app_percy = Percy::AppPercy.new(@mock_ios_webdriver)
86
+ assert_instance_of(Percy::IOSMetadata, app_percy.metadata)
87
+ assert_instance_of(Percy::GenericProvider, app_percy.provider)
90
88
  end
91
89
 
92
90
  def test_screenshot_with_percy_options_disabled
93
91
  disable_percy_options(@mock_android_webdriver, num = 5)
94
92
  make_mock_driver_appium(@mock_android_webdriver)
95
93
  mock_driver_remote_url(@mock_android_webdriver, 'some-other-url', num = 2)
96
- app_percy = AppPercy.new(@mock_android_webdriver)
94
+ app_percy = Percy::AppPercy.new(@mock_android_webdriver)
97
95
  assert_nil app_percy.screenshot('screenshot 1')
98
96
  end
99
97
 
@@ -101,7 +99,7 @@ class TestAppPercy < Minitest::Test
101
99
  disable_percy_options(@mock_android_webdriver, num = 5)
102
100
  make_mock_driver_appium(@mock_android_webdriver)
103
101
  mock_driver_remote_url(@mock_android_webdriver, 'some-other-url', num = 2)
104
- app_percy = AppPercy.new(@mock_android_webdriver)
102
+ app_percy = Percy::AppPercy.new(@mock_android_webdriver)
105
103
  assert_nil app_percy.screenshot('screenshot 1')
106
104
  end
107
105
 
@@ -112,7 +110,7 @@ class TestAppPercy < Minitest::Test
112
110
  })
113
111
 
114
112
  assert_raises(Exception) do
115
- AppPercy.screenshot(@mock_android_webdriver, 'screenshot')
113
+ Percy::AppPercy.screenshot(@mock_android_webdriver, 'screenshot')
116
114
  end
117
115
  end
118
116
 
@@ -125,16 +123,16 @@ class TestAppPercy < Minitest::Test
125
123
  @mock_android_webdriver.expect(:capabilities, caps)
126
124
  end
127
125
 
128
- GenericProvider.stub(:supports, false) do
126
+ Percy::GenericProvider.stub(:supports, false) do
129
127
  assert_raises(UnknownProvider) do
130
- _provider = AppPercy.new(@mock_android_webdriver).provider
128
+ _provider = Percy::AppPercy.new(@mock_android_webdriver).provider
131
129
  end
132
130
  end
133
131
  end
134
132
 
135
133
  def test_invalid_driver
136
134
  assert_raises(DriverNotSupported) do
137
- AppPercy.new(Object.new)
135
+ Percy::AppPercy.new(Object.new)
138
136
  end
139
137
  end
140
138
 
@@ -169,7 +167,7 @@ class TestAppPercy < Minitest::Test
169
167
  })
170
168
 
171
169
  assert_raises(Exception) do
172
- AppPercy.screenshot(mock_webdriver, 'screenshot')
170
+ Percy::AppPercy.screenshot(mock_webdriver, 'screenshot')
173
171
  end
174
172
  end
175
173
  end
data/specs/cache.rb CHANGED
@@ -5,52 +5,52 @@ require 'minitest/mock'
5
5
  require 'time'
6
6
  require_relative '../percy/lib/cache'
7
7
 
8
- # Test suite for the Cache class
8
+ # Test suite for the Percy::Cache class
9
9
  class TestCache < Minitest::Test
10
10
  def setup
11
- @cache = Cache.new
11
+ @cache = Percy::Cache.new
12
12
  @session_id = 'session_id_123'
13
13
  @prop = 'window_size'
14
14
  @value = { 'top' => 'Top Value' }
15
- Cache.set_cache(@session_id, @prop, @value)
15
+ Percy::Cache.set_cache(@session_id, @prop, @value)
16
16
  end
17
17
 
18
18
  def test_set_cache
19
- assert_raises(Exception) { Cache.set_cache(123, 123, 123) }
20
- assert_raises(Exception) { Cache.set_cache(@session_id, 123, 123) }
19
+ assert_raises(Exception) { Percy::Cache.set_cache(123, 123, 123) }
20
+ assert_raises(Exception) { Percy::Cache.set_cache(@session_id, 123, 123) }
21
21
 
22
22
  assert_includes @cache.cache, @session_id
23
23
  assert_equal @cache.cache[@session_id][@prop], @value
24
24
  end
25
25
 
26
26
  def test_get_cache_invalid_args
27
- assert_raises(Exception) { Cache.get_cache(123, 123) }
28
- assert_raises(Exception) { Cache.get_cache(@session_id, 123) }
27
+ assert_raises(Exception) { Percy::Cache.get_cache(123, 123) }
28
+ assert_raises(Exception) { Percy::Cache.get_cache(@session_id, 123) }
29
29
  end
30
30
 
31
31
  def test_get_cache_success
32
32
  mock_cleanup_cache = Minitest::Mock.new
33
33
  mock_cleanup_cache.expect(:call, nil)
34
34
 
35
- Cache.stub(:cleanup_cache, -> { mock_cleanup_cache.call }) do
36
- window_size = Cache.get_cache(@session_id, @prop)
35
+ Percy::Cache.stub(:cleanup_cache, -> { mock_cleanup_cache.call }) do
36
+ window_size = Percy::Cache.get_cache(@session_id, @prop)
37
37
  assert_equal @value, window_size
38
38
  mock_cleanup_cache.verify
39
39
  end
40
40
  end
41
41
 
42
42
  def test_cleanup_cache
43
- previous_value = Cache::CACHE_TIMEOUT
44
- Cache.send(:remove_const, :CACHE_TIMEOUT)
45
- Cache.const_set(:CACHE_TIMEOUT, 1)
43
+ previous_value = Percy::Cache::CACHE_TIMEOUT
44
+ Percy::Cache.send(:remove_const, :CACHE_TIMEOUT)
45
+ Percy::Cache.const_set(:CACHE_TIMEOUT, 1)
46
46
 
47
- cache_timeout = Cache::CACHE_TIMEOUT
47
+ cache_timeout = Percy::Cache::CACHE_TIMEOUT
48
48
  sleep(cache_timeout + 1)
49
49
  assert_includes @cache.cache, @session_id
50
- Cache.cleanup_cache
50
+ Percy::Cache.cleanup_cache
51
51
  refute_includes @cache.cache, @session_id
52
52
 
53
- Cache.send(:remove_const, :CACHE_TIMEOUT)
54
- Cache.const_set(:CACHE_TIMEOUT, previous_value)
53
+ Percy::Cache.send(:remove_const, :CACHE_TIMEOUT)
54
+ Percy::Cache.const_set(:CACHE_TIMEOUT, previous_value)
55
55
  end
56
56
  end
data/specs/cli_wrapper.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
-
5
3
  require 'minitest/autorun'
6
4
  require 'webmock/minitest'
7
5
  require 'json'
@@ -18,10 +16,10 @@ def mock_poa_screenshot(fail: false)
18
16
  .to_return(body: "{\"success\": #{fail ? 'false, "error": "test"' : 'true'}}", status: (fail ? 500 : 200))
19
17
  end
20
18
 
21
- # Test suite for the CLIWrapper class
19
+ # Test suite for the Percy::CLIWrapper class
22
20
  class TestCLIWrapper < Minitest::Test
23
21
  def setup
24
- @cli_wrapper = CLIWrapper.new
22
+ @cli_wrapper = Percy::CLIWrapper.new
25
23
  @ignored_elements_data = {
26
24
  'ignore_elements_data' => {
27
25
  'selector' => 'xpath: some_xpath',
@@ -85,7 +83,7 @@ class TestCLIWrapper < Minitest::Test
85
83
  mock_screenshot
86
84
 
87
85
  assert_equal(
88
- @cli_wrapper.post_screenshots('some-name', {}, [Tile.new(10, 10, 20, 20, filepath: 'some-file-path')],
86
+ @cli_wrapper.post_screenshots('some-name', {}, [Percy::Tile.new(10, 10, 20, 20, filepath: 'some-file-path')],
89
87
  'some-debug-url'),
90
88
  { 'link' => 'snapshot-url-link', 'success' => true }
91
89
  )
@@ -95,14 +93,14 @@ class TestCLIWrapper < Minitest::Test
95
93
  mock_screenshot
96
94
 
97
95
  assert_equal(
98
- @cli_wrapper.post_screenshots('some-name', {}, [Tile.new(10, 10, 20, 20, filepath: 'some-file-path')],
96
+ @cli_wrapper.post_screenshots('some-name', {}, [Percy::Tile.new(10, 10, 20, 20, filepath: 'some-file-path')],
99
97
  'some-debug-url', @ignored_elements_data),
100
98
  { 'link' => 'snapshot-url-link', 'success' => true }
101
99
  )
102
100
  end
103
101
 
104
102
  def test_request_body
105
- tile = Tile.new(10, 10, 20, 20, filepath: 'some-file-path')
103
+ tile = Percy::Tile.new(10, 10, 20, 20, filepath: 'some-file-path')
106
104
  tag = { 'name' => 'Tag' }
107
105
  name = 'some-name'
108
106
  debug_url = 'debug-url'
@@ -117,7 +115,7 @@ class TestCLIWrapper < Minitest::Test
117
115
  end
118
116
 
119
117
  def test_request_body_when_optional_values_are_null
120
- tile = Tile.new(10, 10, 20, 20, filepath: 'some-file-path')
118
+ tile = Percy::Tile.new(10, 10, 20, 20, filepath: 'some-file-path')
121
119
  tag = { 'name' => 'Tag' }
122
120
  name = 'some-name'
123
121
  debug_url = nil
@@ -1,14 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
-
5
3
  require 'minitest/autorun'
6
4
  require 'minitest/mock'
7
5
  require 'appium_lib'
8
6
 
9
7
  require_relative '../percy/metadata/driver_metadata'
10
8
 
11
- # Test suite for the DriverMetadata class
9
+ # Test suite for the Percy::DriverMetadata class
12
10
  class TestDriverMetadata < Minitest::Test
13
11
  def setup
14
12
  @mock_webdriver = Minitest::Mock.new
@@ -16,7 +14,7 @@ class TestDriverMetadata < Minitest::Test
16
14
  @bridge = Minitest::Mock.new
17
15
  @server_url = Minitest::Mock.new
18
16
 
19
- @metadata = DriverMetadata.new(@mock_webdriver)
17
+ @metadata = Percy::DriverMetadata.new(@mock_webdriver)
20
18
  end
21
19
 
22
20
  def test_session_id
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
- # rubocop:disable Metrics/AbcSize
5
-
6
3
  require 'minitest/autorun'
7
4
  require 'securerandom'
8
5
  require 'appium_lib'
@@ -11,7 +8,7 @@ require_relative '../percy/metadata/android_metadata'
11
8
  require_relative '../percy/lib/region'
12
9
  require_relative 'mocks/mock_methods'
13
10
 
14
- # Test suite for the GenericProvider class
11
+ # Test suite for the Percy::GenericProvider class
15
12
  class TestGenericProvider < Minitest::Test
16
13
  include Appium
17
14
  COMPARISON_RESPONSE = { 'comparison' => { 'id' => 123, 'url' => 'https://percy-build-url' } }.freeze
@@ -31,8 +28,8 @@ class TestGenericProvider < Minitest::Test
31
28
  png_bytes = 'some random bytes'
32
29
  @mock_webdriver.expect(:screenshot_as, png_bytes, [:png])
33
30
 
34
- @android_metadata = AndroidMetadata.new(@mock_webdriver)
35
- @generic_provider = GenericProvider.new(@mock_webdriver, @android_metadata)
31
+ @android_metadata = Percy::AndroidMetadata.new(@mock_webdriver)
32
+ @generic_provider = Percy::GenericProvider.new(@mock_webdriver, @android_metadata)
36
33
  end
37
34
 
38
35
  def teardown
@@ -166,13 +163,13 @@ class TestGenericProvider < Minitest::Test
166
163
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
167
164
  end
168
165
 
169
- Metadata.class_eval do
166
+ Percy::Metadata.class_eval do
170
167
  define_method(:session_id) do
171
168
  mock.session_id
172
169
  end
173
170
  end
174
171
 
175
- AndroidMetadata.class_eval do
172
+ Percy::AndroidMetadata.class_eval do
176
173
  6.times do
177
174
  define_method(:get_system_bars) do
178
175
  mock.get_system_bars
@@ -192,7 +189,7 @@ class TestGenericProvider < Minitest::Test
192
189
  end
193
190
 
194
191
  def test_supports
195
- assert GenericProvider.supports('some-dummy-url')
192
+ assert Percy::GenericProvider.supports('some-dummy-url')
196
193
  end
197
194
 
198
195
  def test_non_app_automate
@@ -202,7 +199,7 @@ class TestGenericProvider < Minitest::Test
202
199
  mock.expect(:session_id, session_id)
203
200
  end
204
201
 
205
- Metadata.class_eval do
202
+ Percy::Metadata.class_eval do
206
203
  4.times do
207
204
  define_method(:session_id) do
208
205
  mock.session_id
@@ -353,8 +350,8 @@ class TestGenericProvider < Minitest::Test
353
350
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
354
351
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
355
352
  @mock_webdriver.expect(:capabilities, get_android_capabilities)
356
- valid_ignore_region = Region.new(100, 200, 200, 300)
357
- invalid_ignore_region = Region.new(100, 2390, 200, 300)
353
+ valid_ignore_region = Percy::Region.new(100, 200, 200, 300)
354
+ invalid_ignore_region = Percy::Region.new(100, 2390, 200, 300)
358
355
 
359
356
  elements_array = []
360
357
  custom_locations = [valid_ignore_region, invalid_ignore_region]
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
-
5
3
  require 'minitest/autorun'
6
4
  require_relative '../percy/lib/ignore_region'
7
5
 
@@ -12,7 +10,7 @@ class TestIgnoreRegion < Minitest::Test
12
10
  bottom = 20
13
11
  left = 30
14
12
  right = 40
15
- ignore_region = IgnoreRegion.new(top, bottom, left, right)
13
+ ignore_region = Percy::IgnoreRegion.new(top, bottom, left, right)
16
14
 
17
15
  assert_equal ignore_region.top, top
18
16
  assert_equal ignore_region.bottom, bottom
@@ -21,29 +19,29 @@ class TestIgnoreRegion < Minitest::Test
21
19
  end
22
20
 
23
21
  def test_ignore_region_negative_input
24
- assert_raises(ArgumentError) { IgnoreRegion.new(-10, 20, 30, 40) }
25
- assert_raises(ArgumentError) { IgnoreRegion.new(10, 20, -30, 40) }
26
- assert_raises(ArgumentError) { IgnoreRegion.new(10, 20, 30, -40) }
27
- assert_raises(ArgumentError) { IgnoreRegion.new(-10, -20, -30, -40) }
22
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(-10, 20, 30, 40) }
23
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(10, 20, -30, 40) }
24
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(10, 20, 30, -40) }
25
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(-10, -20, -30, -40) }
28
26
  end
29
27
 
30
28
  def test_ignore_region_invalid_input
31
- assert_raises(ArgumentError) { IgnoreRegion.new(20, 10, 30, 40) } # bottom < top
32
- assert_raises(ArgumentError) { IgnoreRegion.new(10, 20, 40, 30) } # right < left
29
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(20, 10, 30, 40) } # bottom < top
30
+ assert_raises(ArgumentError) { Percy::IgnoreRegion.new(10, 20, 40, 30) } # right < left
33
31
  end
34
32
 
35
33
  def test_ignore_region_is_valid
36
- ignore_region = IgnoreRegion.new(10, 20, 30, 40)
34
+ ignore_region = Percy::IgnoreRegion.new(10, 20, 30, 40)
37
35
  screen_height = 100
38
36
  screen_width = 200
39
37
  assert_equal true, ignore_region.valid?(screen_height, screen_width)
40
38
 
41
- ignore_region = IgnoreRegion.new(10, 200, 30, 400)
39
+ ignore_region = Percy::IgnoreRegion.new(10, 200, 30, 400)
42
40
  height = 100
43
41
  width = 200
44
42
  assert_equal false, ignore_region.valid?(height, width)
45
43
 
46
- ignore_region = IgnoreRegion.new(10, 20, 30, 40)
44
+ ignore_region = Percy::IgnoreRegion.new(10, 20, 30, 40)
47
45
  screen_height = 5
48
46
  screen_width = 10
49
47
  assert_equal false, ignore_region.valid?(screen_height, screen_width)
@@ -5,14 +5,14 @@ require 'minitest/mock'
5
5
  require_relative 'mocks/mock_methods'
6
6
  require_relative '../percy/metadata/ios_metadata'
7
7
 
8
- # Test suite for the IOSMetadata class
8
+ # Test suite for the Percy::IOSMetadata class
9
9
  class TestIOSMetadata < Minitest::Test
10
10
  def setup
11
11
  @mock_webdriver = Minitest::Mock.new
12
12
  @bridge = Minitest::Mock.new
13
13
  @http = Minitest::Mock.new
14
14
  @server_url = Minitest::Mock.new
15
- @ios_metadata = IOSMetadata.new(@mock_webdriver)
15
+ @ios_metadata = Percy::IOSMetadata.new(@mock_webdriver)
16
16
  end
17
17
 
18
18
  def test_ios_execute_script
data/specs/metadata.rb CHANGED
@@ -1,16 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/MethodLength
4
- # rubocop:disable Metrics/AbcSize
5
-
6
3
  require 'minitest/autorun'
7
4
  require_relative '../percy/metadata/metadata'
8
5
 
9
- # Test suite for the Metadata class
6
+ # Test suite for the Percy::Metadata class
10
7
  class TestMetadata < Minitest::Test
11
8
  def setup
12
9
  @mock_webdriver = Minitest::Mock.new
13
- @metadata = Metadata.new(@mock_webdriver)
10
+ @metadata = Percy::Metadata.new(@mock_webdriver)
14
11
  end
15
12
 
16
13
  def test_metadata_properties
@@ -6,7 +6,7 @@ require_relative '../percy/metadata/android_metadata'
6
6
  require_relative '../percy/metadata/ios_metadata'
7
7
  require_relative '../percy/metadata/metadata_resolver'
8
8
 
9
- # Test suite for the MetadataResolver class
9
+ # Test suite for the Percy::MetadataResolver class
10
10
  class MetadataResolverTestCase < Minitest::Test
11
11
  def setup
12
12
  @mock_webdriver = Minitest::Mock.new
@@ -15,17 +15,17 @@ class MetadataResolverTestCase < Minitest::Test
15
15
  def test_android_resolved
16
16
  @mock_webdriver.expect(:capabilities, { 'platformName' => 'Android' })
17
17
  @mock_webdriver.expect(:capabilities, { 'platformName' => 'Android' })
18
- resolved_metadata = MetadataResolver.resolve(@mock_webdriver)
18
+ resolved_metadata = Percy::MetadataResolver.resolve(@mock_webdriver)
19
19
 
20
- assert_instance_of(AndroidMetadata, resolved_metadata)
20
+ assert_instance_of(Percy::AndroidMetadata, resolved_metadata)
21
21
  @mock_webdriver.verify
22
22
  end
23
23
 
24
24
  def test_ios_resolved
25
25
  @mock_webdriver.expect(:capabilities, { 'platformName' => 'iOS' })
26
- resolved_metadata = MetadataResolver.resolve(@mock_webdriver)
26
+ resolved_metadata = Percy::MetadataResolver.resolve(@mock_webdriver)
27
27
 
28
- assert_instance_of(IOSMetadata, resolved_metadata)
28
+ assert_instance_of(Percy::IOSMetadata, resolved_metadata)
29
29
  @mock_webdriver.verify
30
30
  end
31
31
 
@@ -33,7 +33,7 @@ class MetadataResolverTestCase < Minitest::Test
33
33
  @mock_webdriver.expect(:capabilities, { 'platformName' => 'Something Random' })
34
34
 
35
35
  assert_raises(Exception) do
36
- MetadataResolver.resolve(@mock_webdriver)
36
+ Percy::MetadataResolver.resolve(@mock_webdriver)
37
37
  end
38
38
 
39
39
  @mock_webdriver.verify
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require 'json'
4
2
 
5
3
  def get_android_capabilities