@@ -88,116 +88,6 @@ def expect_request(body: nil, endpoint: nil)
88
88
described_class . new ( options : Options . firefox )
89
89
} . to raise_exception ( ArgumentError , ':options must be an instance of Selenium::WebDriver::Chrome::Options' )
90
90
end
91
-
92
- it 'does not allow both Options and Capabilities' do
93
- msg = "Don't use both :options and :capabilities when initializing Selenium::WebDriver::Chrome::Driver, " \
94
- 'prefer :options'
95
- expect {
96
- described_class . new ( options : Options . new , capabilities : Remote ::Capabilities . new ( browser_name : 'chrome' ) )
97
- } . to raise_exception ( ArgumentError , msg )
98
- end
99
-
100
- context 'with :capabilities' do
101
- before { allow ( DriverFinder ) . to receive ( :path ) }
102
-
103
- it 'accepts value as a Symbol' do
104
- expect_request
105
- expect { described_class . new ( capabilities : :chrome ) } . to have_deprecated ( :capabilities )
106
- end
107
-
108
- it 'accepts constructed Capabilities with Snake Case as Symbols' do
109
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' , invalid : 'foobar' } } } )
110
-
111
- expect {
112
- capabilities = Remote ::Capabilities . new ( browser_name : 'chrome' , invalid : 'foobar' )
113
- expect { described_class . new ( capabilities : capabilities ) } . not_to raise_exception
114
- } . to have_deprecated ( :capabilities )
115
- end
116
-
117
- it 'accepts constructed Capabilities with Camel Case as Symbols' do
118
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' , invalid : 'foobar' } } } )
119
-
120
- expect {
121
- capabilities = Remote ::Capabilities . new ( browserName : 'chrome' , invalid : 'foobar' )
122
- expect { described_class . new ( capabilities : capabilities ) } . not_to raise_exception
123
- } . to have_deprecated ( :capabilities )
124
- end
125
-
126
- it 'accepts constructed Capabilities with Camel Case as Strings' do
127
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' , invalid : 'foobar' } } } )
128
-
129
- expect {
130
- capabilities = Remote ::Capabilities . new ( 'browserName' => 'chrome' , 'invalid' => 'foobar' )
131
- expect { described_class . new ( capabilities : capabilities ) } . not_to raise_exception
132
- } . to have_deprecated ( :capabilities )
133
- end
134
-
135
- context 'when value is an Array' do
136
- let ( :as_json_object ) do
137
- Class . new do
138
- def as_json ( *)
139
- { 'company:key' : 'value' }
140
- end
141
- end
142
- end
143
-
144
- it 'with Options instance' do
145
- options = Options . new ( args : [ '-f' ] )
146
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' ,
147
- 'goog:chromeOptions' : { args : [ '-f' ] } } } } )
148
-
149
- expect {
150
- expect {
151
- described_class . new ( capabilities : [ options ] )
152
- } . not_to raise_exception
153
- } . to have_deprecated ( :capabilities )
154
- end
155
-
156
- it 'with Options instance with profile' do
157
- profile = Profile . new . tap ( &:layout_on_disk )
158
- allow ( profile ) . to receive ( :directory ) . and_return ( 'PROF_DIR' )
159
- options = Options . new ( profile : profile )
160
-
161
- expect_request ( body : { capabilities :
162
- { alwaysMatch : { browserName : 'chrome' ,
163
- 'goog:chromeOptions' : { args : [ '--user-data-dir=PROF_DIR' ] } } } } )
164
-
165
- expect {
166
- expect {
167
- described_class . new ( capabilities : [ options ] )
168
- } . not_to raise_exception
169
- } . to have_deprecated ( :capabilities )
170
- end
171
-
172
- it 'with Capabilities instance' do
173
- capabilities = Remote ::Capabilities . new ( browser_name : 'chrome' , invalid : 'foobar' )
174
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' , invalid : 'foobar' } } } )
175
-
176
- expect { described_class . new ( capabilities : [ capabilities ] ) } . to have_deprecated ( :capabilities )
177
- end
178
-
179
- it 'with Options instance and an instance of a custom object responding to #as_json' do
180
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' ,
181
- 'goog:chromeOptions' : { } ,
182
- 'company:key' : 'value' } } } )
183
- expect {
184
- described_class . new ( capabilities : [ Options . new , as_json_object . new ] )
185
- } . to have_deprecated ( :capabilities )
186
- end
187
-
188
- it 'with Options instance, Capabilities instance and instance of a custom object responding to #as_json' do
189
- capabilities = Remote ::Capabilities . new ( browser_name : 'chrome' , invalid : 'foobar' )
190
- options = Options . new ( args : [ '-f' ] )
191
- expect_request ( body : { capabilities : { alwaysMatch : { browserName : 'chrome' , invalid : 'foobar' ,
192
- 'goog:chromeOptions' : { args : [ '-f' ] } ,
193
- 'company:key' : 'value' } } } )
194
-
195
- expect {
196
- described_class . new ( capabilities : [ capabilities , options , as_json_object . new ] )
197
- } . to have_deprecated ( :capabilities )
198
- end
199
- end
200
- end
201
91
end
202
92
end # Chrome
203
93
end # WebDriver
0 commit comments