@@ -23,69 +23,83 @@ module Selenium
23
23
module WebDriver
24
24
25
25
describe Firefox do
26
- compliant_on :browser => :marionette do
27
- context "when designated firefox binary includes Marionette" do
28
- before ( :each ) do
29
- Selenium ::WebDriver ::Firefox ::Binary . path = ENV [ 'MARIONETTE_PATH' ]
30
- end
31
-
32
- it "Uses Wires when initialized with W3C desired_capabilities" do
33
- caps = Selenium ::WebDriver ::Remote ::W3CCapabilities . firefox
34
- expect do
35
- @driver = Selenium ::WebDriver . for :firefox , :desired_capabilities => caps
36
- end . to_not raise_exception
37
- @driver . quit
38
- end
26
+ before ( :each ) do
27
+ @opt = GlobalTestEnv . remote_server? ? { :url => GlobalTestEnv . remote_server . webdriver_url } : { }
28
+ end
39
29
40
- it "Uses Wires when initialized with non W3C desired_capabilities using marionette option" do
41
- caps = Selenium ::WebDriver ::Remote ::Capabilities . firefox ( :marionette => true )
42
- expect do
43
- @driver = Selenium ::WebDriver . for :firefox , :desired_capabilities => caps
44
- end . to_not raise_exception
45
- @driver . quit
30
+ context "when designated firefox binary includes Marionette" do
31
+ before ( :each ) do
32
+ unless ENV [ 'MARIONETTE_PATH' ]
33
+ pending "Set ENV['MARIONETTE_PATH'] to test Marionette enabled Firefox installations"
46
34
end
35
+ end
47
36
48
- it "Uses Wires when initialized with marionette option" do
49
- @driver = Selenium ::WebDriver . for :firefox , { marionette : true }
50
- expect ( @driver . instance_variable_get ( '@bridge' ) . instance_variable_get ( '@launcher' ) ) . to be_nil
51
- @driver . quit
37
+ compliant_on :browser => :marionette do
38
+ # This passes in isolation, but can not run in suite due to combination of
39
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1228107 & https://github.com/SeleniumHQ/selenium/issues/1150
40
+ not_compliant_on :driver => :remote do
41
+ it "Uses Wires when setting marionette option in capabilities" do
42
+ cap_opts = { :marionette => true }
43
+ cap_opts . merge! ( :firefox_binary => ENV [ 'MARIONETTE_PATH' ] ) unless GlobalTestEnv . driver == :remote
44
+ caps = Selenium ::WebDriver ::Remote ::Capabilities . firefox cap_opts
45
+ @opt . merge! ( :desired_capabilities => caps )
46
+ expect { @driver = Selenium ::WebDriver . for GlobalTestEnv . driver , @opt } . to_not raise_exception
47
+ @driver . quit
48
+ end
52
49
end
50
+ end
53
51
54
- not_compliant_on :browser => :marionette do
55
- it "Does not use wires by default" do
56
- unless ENV [ 'MARIONETTE_PATH' ]
57
- pending "Set ENV['MARIONETTE_PATH'] to test Marionette enabled Firefox installations"
58
- end
52
+ compliant_on :browser => :marionette do
53
+ # This passes in isolation, but can not run in suite due to combination of
54
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1228107 & https://github.com/SeleniumHQ/selenium/issues/1150
55
+ not_compliant_on :driver => :remote do
56
+ it "Uses Wires when setting marionette option in driver initialization" do
57
+ cap_opts = GlobalTestEnv . driver == :remote ? { } : { :firefox_binary => ENV [ 'MARIONETTE_PATH' ] }
58
+ caps = Selenium ::WebDriver ::Remote ::Capabilities . firefox cap_opts
59
+ @opt . merge! ( :marionette => true , :desired_capabilities => caps )
60
+ @driver = Selenium ::WebDriver . for GlobalTestEnv . driver , @opt
59
61
60
- Selenium ::WebDriver ::Firefox ::Binary . path = ENV [ 'MARIONETTE_PATH' ]
61
- @driver = Selenium ::WebDriver . for :firefox
62
- expect ( @driver . instance_variable_get ( '@bridge' ) . instance_variable_get ( '@launcher' ) ) . to_not be_nil
62
+ expect ( @driver . capabilities [ :takes_element_screenshot ] ) . to_not be_nil
63
63
@driver . quit
64
64
end
65
65
end
66
+ end
67
+
68
+ # test with firefox due to https://bugzilla.mozilla.org/show_bug.cgi?id=1228121
69
+ compliant_on :browser => :firefox do
70
+ it "Does not use wires when marionette option is not set" do
71
+ @driver = Selenium ::WebDriver . for GlobalTestEnv . driver , @opt
72
+
73
+ expect ( @driver . capabilities [ :takes_element_screenshot ] ) . to be_nil
74
+ @driver . quit
75
+ end
76
+ end
66
77
78
+ compliant_on :browser => :marionette do
79
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1228107
67
80
not_compliant_on :browser => :marionette do
68
81
it_behaves_like "driver that can be started concurrently" , :marionette
69
82
end
70
83
end
71
84
end
72
85
73
86
compliant_on :browser => :firefox do
74
- context "when designated firefox binary does not include Marionette" do
75
- let ( :message ) { /Firefox Version \d \d does not support Marionette/ }
87
+ # TODO - Adjust specs when default Firefox version includes Marionette
88
+ # TODO - File bug for Unhandled error for remote / firefox
89
+ not_compliant_on :driver => :remote do
90
+ context "when designated firefox binary does not include Marionette" do
91
+ let ( :message ) { /does not support Marionette/ }
76
92
77
- it "Raises Wires Exception when initialized with :desired_capabilities" do
78
- caps = Selenium ::WebDriver ::Remote ::W3CCapabilities . firefox
79
- opt = { :desired_capabilities => caps }
80
- expect { Selenium ::WebDriver . for :firefox , opt } . to raise_exception ArgumentError , message
81
- end
82
-
83
- it "Raises Wires Exception when initialized with marionette option" do
84
- expect { Selenium ::WebDriver . for :firefox , { marionette : true } } . to raise_exception ArgumentError , message
85
- end
93
+ it "Raises Wires Exception when setting marionette option in capabilities" do
94
+ caps = Selenium ::WebDriver ::Remote ::Capabilities . firefox ( :marionette => true )
95
+ @opt . merge! ( :desired_capabilities => caps )
96
+ expect { Selenium ::WebDriver . for GlobalTestEnv . driver , @opt } . to raise_exception ArgumentError , message
97
+ end
86
98
87
- it "Raises Wires Exception when initialized with marionette option" do
88
- expect { Selenium ::WebDriver . for :firefox , { marionette : true } } . to raise_exception ArgumentError , message
99
+ it "Raises Wires Exception when setting marionette option in driver initialization" do
100
+ @opt . merge! ( :marionette => true )
101
+ expect { Selenium ::WebDriver . for GlobalTestEnv . driver , @opt } . to raise_exception ArgumentError , message
102
+ end
89
103
end
90
104
end
91
105
end
0 commit comments