fluent 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY.md +21 -0
- data/lib/fluent.rb +29 -2
- data/lib/fluent/enclosers.rb +35 -0
- data/lib/fluent/evaluators.rb +82 -0
- data/lib/fluent/factory.rb +31 -0
- data/lib/fluent/generators.rb +116 -18
- data/lib/fluent/platform_selenium.rb +18 -0
- data/lib/fluent/platform_selenium/platform_object.rb +21 -0
- data/lib/fluent/platform_watir/platform_object.rb +181 -14
- data/lib/fluent/platform_watir/platform_web_elements/checkbox.rb +21 -0
- data/lib/fluent/platform_watir/platform_web_elements/radio.rb +21 -0
- data/lib/fluent/platform_watir/platform_web_elements/select_list.rb +30 -4
- data/lib/fluent/platform_watir/platform_web_elements/text_field.rb +13 -0
- data/lib/fluent/platform_watir/platform_web_elements/web_element.rb +84 -5
- data/lib/fluent/platforms.rb +2 -1
- data/lib/fluent/version.rb +1 -1
- data/lib/fluent/web_elements/cell.rb +16 -0
- data/lib/fluent/web_elements/checkbox.rb +4 -0
- data/lib/fluent/web_elements/div.rb +16 -0
- data/lib/fluent/web_elements/list_item.rb +16 -0
- data/lib/fluent/web_elements/ordered_list.rb +16 -0
- data/lib/fluent/web_elements/radio.rb +4 -0
- data/lib/fluent/web_elements/select_list.rb +4 -0
- data/lib/fluent/web_elements/span.rb +16 -0
- data/lib/fluent/web_elements/table.rb +16 -0
- data/lib/fluent/web_elements/text_area.rb +16 -0
- data/lib/fluent/web_elements/text_field.rb +8 -0
- data/lib/fluent/web_elements/unordered_list.rb +16 -0
- data/lib/fluent/web_elements/web_element.rb +12 -0
- data/spec/enclosers_spec.rb +38 -0
- data/spec/evaluators_spec.rb +88 -0
- data/spec/factory_spec.rb +42 -0
- data/spec/fluent_spec.rb +32 -1
- data/spec/generators/cell_generators_spec.rb +50 -0
- data/spec/generators/div_generators_spec.rb +49 -0
- data/spec/generators/list_item_generators_spec.rb +53 -0
- data/spec/generators/ordered_list_generators_spec.rb +53 -0
- data/spec/generators/span_generators_spec.rb +49 -0
- data/spec/generators/table_generators_spec.rb +49 -0
- data/spec/generators/text_area_generators_spec.rb +55 -0
- data/spec/generators/unordered_list_generators_spec.rb +53 -0
- data/spec/generators_spec.rb +40 -0
- data/spec/mock_app.rb +17 -0
- data/spec/platform_object_spec.rb +9 -0
- data/spec/web_element_spec.rb +15 -0
- data/spec/web_element_watir_spec.rb +123 -5
- data/spec/web_elements/checkbox_spec.rb +21 -0
- data/spec/web_elements/radio_spec.rb +21 -0
- data/spec/web_elements/select_list_spec.rb +41 -0
- data/spec/web_elements/text_field_spec.rb +16 -0
- metadata +48 -2
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class CellGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
cell :total, id: 'total'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Fluent::Generators do
|
10
|
+
let(:watir_browser) { mock_browser_for_watir }
|
11
|
+
let(:watir_definition) { CellGenerators.new(watir_browser) }
|
12
|
+
|
13
|
+
describe 'cell generators' do
|
14
|
+
context 'when declared on a page definition' do
|
15
|
+
it 'should generate methods for referencing the cell' do
|
16
|
+
watir_definition.should respond_to(:total_object)
|
17
|
+
watir_definition.should respond_to(:total_element)
|
18
|
+
watir_definition.should respond_to(:total_cell)
|
19
|
+
watir_definition.should respond_to(:total_td)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should generate methods for interacting with the cell' do
|
23
|
+
watir_definition.should respond_to(:total)
|
24
|
+
watir_definition.should respond_to(:total_exists?)
|
25
|
+
watir_definition.should respond_to(:total_visible?)
|
26
|
+
watir_definition.should respond_to(:total?)
|
27
|
+
watir_definition.should respond_to(:total_?)
|
28
|
+
watir_definition.should respond_to(:total_td_exists?)
|
29
|
+
watir_definition.should respond_to(:total_td_visible?)
|
30
|
+
watir_definition.should respond_to(:total_td?)
|
31
|
+
watir_definition.should respond_to(:total_td_?)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when used by the watir platform' do
|
36
|
+
it 'should locate the cell' do
|
37
|
+
watir_browser.should_receive(:td).and_return(watir_browser)
|
38
|
+
web_element = watir_definition.total_cell
|
39
|
+
web_element.should_not be_nil
|
40
|
+
web_element.should be_instance_of Fluent::WebElements::Cell
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should return the text of a table' do
|
44
|
+
watir_browser.should_receive(:td).and_return(watir_browser)
|
45
|
+
watir_browser.should_receive(:text).and_return('testing')
|
46
|
+
watir_definition.total.should == 'testing'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class DivGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
div :section, id: 'section'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Fluent::Generators do
|
10
|
+
let(:watir_browser) { mock_browser_for_watir }
|
11
|
+
let(:watir_definition) { DivGenerators.new(watir_browser) }
|
12
|
+
|
13
|
+
describe 'div generators' do
|
14
|
+
context 'when declared on a page definition' do
|
15
|
+
it 'should generate methods for referencing the div' do
|
16
|
+
watir_definition.should respond_to(:section_object)
|
17
|
+
watir_definition.should respond_to(:section_element)
|
18
|
+
watir_definition.should respond_to(:section_div)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should generate methods for interacting with the div' do
|
22
|
+
watir_definition.should respond_to(:section)
|
23
|
+
watir_definition.should respond_to(:section_exists?)
|
24
|
+
watir_definition.should respond_to(:section_visible?)
|
25
|
+
watir_definition.should respond_to(:section?)
|
26
|
+
watir_definition.should respond_to(:section_?)
|
27
|
+
watir_definition.should respond_to(:section_div_exists?)
|
28
|
+
watir_definition.should respond_to(:section_div_visible?)
|
29
|
+
watir_definition.should respond_to(:section_div?)
|
30
|
+
watir_definition.should respond_to(:section_div_?)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when used by the watir platform' do
|
35
|
+
it 'should locate the div' do
|
36
|
+
watir_browser.should_receive(:div).and_return(watir_browser)
|
37
|
+
web_element = watir_definition.section_div
|
38
|
+
web_element.should_not be_nil
|
39
|
+
web_element.should be_instance_of Fluent::WebElements::Div
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return the text of a div' do
|
43
|
+
watir_browser.should_receive(:div).and_return(watir_browser)
|
44
|
+
watir_browser.should_receive(:text).and_return('testing')
|
45
|
+
watir_definition.section.should == 'testing'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class ListItemGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
li :list_short, id: 'list1'
|
7
|
+
list_item :list, id: 'list2'
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Fluent::Generators do
|
11
|
+
let(:watir_browser) { mock_browser_for_watir }
|
12
|
+
let(:watir_definition) { ListItemGenerators.new(watir_browser) }
|
13
|
+
|
14
|
+
describe 'list item generators' do
|
15
|
+
context 'when declared on a page definition' do
|
16
|
+
it 'should generate methods for referencing the list item' do
|
17
|
+
watir_definition.should respond_to(:list_object)
|
18
|
+
watir_definition.should respond_to(:list_element)
|
19
|
+
watir_definition.should respond_to(:list_list_item)
|
20
|
+
watir_definition.should respond_to(:list_short_li)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should generate methods for interacting with the list item' do
|
24
|
+
watir_definition.should respond_to(:list)
|
25
|
+
watir_definition.should respond_to(:list_exists?)
|
26
|
+
watir_definition.should respond_to(:list_visible?)
|
27
|
+
watir_definition.should respond_to(:list?)
|
28
|
+
watir_definition.should respond_to(:list_?)
|
29
|
+
watir_definition.should respond_to(:list_li_exists?)
|
30
|
+
watir_definition.should respond_to(:list_li_visible?)
|
31
|
+
watir_definition.should respond_to(:list_li?)
|
32
|
+
watir_definition.should respond_to(:list_li_?)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when used by the watir platform' do
|
37
|
+
it 'should locate the list item' do
|
38
|
+
watir_browser.should_receive(:li).and_return(watir_browser)
|
39
|
+
web_element = watir_definition.list_list_item
|
40
|
+
web_element.should_not be_nil
|
41
|
+
web_element.should be_instance_of Fluent::WebElements::ListItem
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should return the text of a list item' do
|
45
|
+
watir_browser.should_receive(:li).twice.and_return(watir_browser)
|
46
|
+
watir_browser.should_receive(:text).twice.and_return('testing')
|
47
|
+
watir_definition.list.should == 'testing'
|
48
|
+
watir_definition.list_short.should == 'testing'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class OrderedListGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
ol :list_short, id: 'list1'
|
7
|
+
ordered_list :list, id: 'list2'
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Fluent::Generators do
|
11
|
+
let(:watir_browser) { mock_browser_for_watir }
|
12
|
+
let(:watir_definition) { OrderedListGenerators.new(watir_browser) }
|
13
|
+
|
14
|
+
describe 'ordered list generators' do
|
15
|
+
context 'when declared on a page definition' do
|
16
|
+
it 'should generate methods for referencing the ordered list' do
|
17
|
+
watir_definition.should respond_to(:list_object)
|
18
|
+
watir_definition.should respond_to(:list_element)
|
19
|
+
watir_definition.should respond_to(:list_ordered_list)
|
20
|
+
watir_definition.should respond_to(:list_short_ol)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should generate methods for interacting with the ordered list' do
|
24
|
+
watir_definition.should respond_to(:list)
|
25
|
+
watir_definition.should respond_to(:list_exists?)
|
26
|
+
watir_definition.should respond_to(:list_visible?)
|
27
|
+
watir_definition.should respond_to(:list?)
|
28
|
+
watir_definition.should respond_to(:list_?)
|
29
|
+
watir_definition.should respond_to(:list_ol_exists?)
|
30
|
+
watir_definition.should respond_to(:list_ol_visible?)
|
31
|
+
watir_definition.should respond_to(:list_ol?)
|
32
|
+
watir_definition.should respond_to(:list_ol_?)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when used by the watir platform' do
|
37
|
+
it 'should locate the ordered list' do
|
38
|
+
watir_browser.should_receive(:ol).and_return(watir_browser)
|
39
|
+
web_element = watir_definition.list_ordered_list
|
40
|
+
web_element.should_not be_nil
|
41
|
+
web_element.should be_instance_of Fluent::WebElements::OrderedList
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should return the text of a ordered list' do
|
45
|
+
watir_browser.should_receive(:ol).twice.and_return(watir_browser)
|
46
|
+
watir_browser.should_receive(:text).twice.and_return('testing')
|
47
|
+
watir_definition.list.should == 'testing'
|
48
|
+
watir_definition.list_short.should == 'testing'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class SpanGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
span :inline, id: 'inline'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Fluent::Generators do
|
10
|
+
let(:watir_browser) { mock_browser_for_watir }
|
11
|
+
let(:watir_definition) { SpanGenerators.new(watir_browser) }
|
12
|
+
|
13
|
+
describe 'span generators' do
|
14
|
+
context 'when declared on a page definition' do
|
15
|
+
it 'should generate methods for referencing the span' do
|
16
|
+
watir_definition.should respond_to(:inline_object)
|
17
|
+
watir_definition.should respond_to(:inline_element)
|
18
|
+
watir_definition.should respond_to(:inline_span)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should generate methods for interacting with the span' do
|
22
|
+
watir_definition.should respond_to(:inline)
|
23
|
+
watir_definition.should respond_to(:inline_exists?)
|
24
|
+
watir_definition.should respond_to(:inline_visible?)
|
25
|
+
watir_definition.should respond_to(:inline?)
|
26
|
+
watir_definition.should respond_to(:inline_?)
|
27
|
+
watir_definition.should respond_to(:inline_span_exists?)
|
28
|
+
watir_definition.should respond_to(:inline_span_visible?)
|
29
|
+
watir_definition.should respond_to(:inline_span?)
|
30
|
+
watir_definition.should respond_to(:inline_span_?)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when used by the watir platform' do
|
35
|
+
it 'should locate the span' do
|
36
|
+
watir_browser.should_receive(:span).and_return(watir_browser)
|
37
|
+
web_element = watir_definition.inline_span
|
38
|
+
web_element.should_not be_nil
|
39
|
+
web_element.should be_instance_of Fluent::WebElements::Span
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return the text of a span' do
|
43
|
+
watir_browser.should_receive(:span).and_return(watir_browser)
|
44
|
+
watir_browser.should_receive(:text).and_return('testing')
|
45
|
+
watir_definition.inline.should == 'testing'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class TableGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
table :accounts, id: 'accounts'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Fluent::Generators do
|
10
|
+
let(:watir_browser) { mock_browser_for_watir }
|
11
|
+
let(:watir_definition) { TableGenerators.new(watir_browser) }
|
12
|
+
|
13
|
+
describe 'table generators' do
|
14
|
+
context 'when declared on a page definition' do
|
15
|
+
it 'should generate methods for referencing the table' do
|
16
|
+
watir_definition.should respond_to(:accounts_object)
|
17
|
+
watir_definition.should respond_to(:accounts_element)
|
18
|
+
watir_definition.should respond_to(:accounts_table)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should generate methods for interacting with the table' do
|
22
|
+
watir_definition.should respond_to(:accounts)
|
23
|
+
watir_definition.should respond_to(:accounts_exists?)
|
24
|
+
watir_definition.should respond_to(:accounts_visible?)
|
25
|
+
watir_definition.should respond_to(:accounts?)
|
26
|
+
watir_definition.should respond_to(:accounts_?)
|
27
|
+
watir_definition.should respond_to(:accounts_table_exists?)
|
28
|
+
watir_definition.should respond_to(:accounts_table_visible?)
|
29
|
+
watir_definition.should respond_to(:accounts_table?)
|
30
|
+
watir_definition.should respond_to(:accounts_table_?)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when used by the watir platform' do
|
35
|
+
it 'should locate the table' do
|
36
|
+
watir_browser.should_receive(:table).and_return(watir_browser)
|
37
|
+
web_element = watir_definition.accounts_table
|
38
|
+
web_element.should_not be_nil
|
39
|
+
web_element.should be_instance_of Fluent::WebElements::Table
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return the text of a table' do
|
43
|
+
watir_browser.should_receive(:table).and_return(watir_browser)
|
44
|
+
watir_browser.should_receive(:text).and_return('testing')
|
45
|
+
watir_definition.accounts.should == 'testing'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class TextAreaGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
text_area :summary, id: 'summary'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Fluent::Generators do
|
10
|
+
let(:watir_browser) { mock_browser_for_watir }
|
11
|
+
let(:watir_definition) { TextAreaGenerators.new(watir_browser) }
|
12
|
+
|
13
|
+
describe 'text area generators' do
|
14
|
+
context 'when declared on a page definition' do
|
15
|
+
it 'should generate methods for referencing the text area' do
|
16
|
+
watir_definition.should respond_to(:summary_object)
|
17
|
+
watir_definition.should respond_to(:summary_element)
|
18
|
+
watir_definition.should respond_to(:summary_text_area)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should generate methods for interacting with the text area' do
|
22
|
+
watir_definition.should respond_to(:summary)
|
23
|
+
watir_definition.should respond_to(:summary_exists?)
|
24
|
+
watir_definition.should respond_to(:summary_visible?)
|
25
|
+
watir_definition.should respond_to(:summary?)
|
26
|
+
watir_definition.should respond_to(:summary_?)
|
27
|
+
watir_definition.should respond_to(:summary_text_area_exists?)
|
28
|
+
watir_definition.should respond_to(:summary_text_area_visible?)
|
29
|
+
watir_definition.should respond_to(:summary_text_area?)
|
30
|
+
watir_definition.should respond_to(:summary_text_area_?)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when used by the watir platform' do
|
35
|
+
it 'should locate the text area' do
|
36
|
+
watir_browser.should_receive(:text_area).and_return(watir_browser)
|
37
|
+
web_element = watir_definition.summary_object
|
38
|
+
web_element.should_not be_nil
|
39
|
+
web_element.should be_instance_of Fluent::WebElements::TextArea
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should retrieve text from the text area' do
|
43
|
+
watir_browser.should_receive(:text_area).and_return(watir_browser)
|
44
|
+
watir_browser.should_receive(:value).and_return('testing')
|
45
|
+
watir_definition.summary.should == 'testing'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should enter text into a text area' do
|
49
|
+
watir_browser.should_receive(:text_area).and_return(watir_browser)
|
50
|
+
watir_browser.should_receive(:set).with('testing')
|
51
|
+
watir_definition.summary = 'testing'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class UnorderedListGenerators
|
4
|
+
include Fluent
|
5
|
+
|
6
|
+
ul :list_short, id: 'list1'
|
7
|
+
unordered_list :list, id: 'list2'
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Fluent::Generators do
|
11
|
+
let(:watir_browser) { mock_browser_for_watir }
|
12
|
+
let(:watir_definition) { UnorderedListGenerators.new(watir_browser) }
|
13
|
+
|
14
|
+
describe 'unordered list generators' do
|
15
|
+
context 'when declared on a page definition' do
|
16
|
+
it 'should generate methods for referencing the unordered list' do
|
17
|
+
watir_definition.should respond_to(:list_object)
|
18
|
+
watir_definition.should respond_to(:list_element)
|
19
|
+
watir_definition.should respond_to(:list_unordered_list)
|
20
|
+
watir_definition.should respond_to(:list_short_ul)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should generate methods for interacting with the unordered list' do
|
24
|
+
watir_definition.should respond_to(:list)
|
25
|
+
watir_definition.should respond_to(:list_exists?)
|
26
|
+
watir_definition.should respond_to(:list_visible?)
|
27
|
+
watir_definition.should respond_to(:list?)
|
28
|
+
watir_definition.should respond_to(:list_?)
|
29
|
+
watir_definition.should respond_to(:list_ul_exists?)
|
30
|
+
watir_definition.should respond_to(:list_ul_visible?)
|
31
|
+
watir_definition.should respond_to(:list_ul?)
|
32
|
+
watir_definition.should respond_to(:list_ul_?)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when used by the watir platform' do
|
37
|
+
it 'should locate the unordered list' do
|
38
|
+
watir_browser.should_receive(:ul).and_return(watir_browser)
|
39
|
+
web_element = watir_definition.list_unordered_list
|
40
|
+
web_element.should_not be_nil
|
41
|
+
web_element.should be_instance_of Fluent::WebElements::UnorderedList
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should return the text of a unordered list' do
|
45
|
+
watir_browser.should_receive(:ul).twice.and_return(watir_browser)
|
46
|
+
watir_browser.should_receive(:text).twice.and_return('testing')
|
47
|
+
watir_definition.list.should == 'testing'
|
48
|
+
watir_definition.list_short.should == 'testing'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/spec/generators_spec.rb
CHANGED
@@ -3,13 +3,19 @@ require 'mock_app'
|
|
3
3
|
|
4
4
|
describe Fluent::Generators do
|
5
5
|
let(:watir_browser) { mock_browser_for_watir }
|
6
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
7
|
+
|
6
8
|
let(:watir_definition) { TestDefinition.new(watir_browser) }
|
9
|
+
let(:selenium_definition) { TestDefinition.new(selenium_browser) }
|
7
10
|
|
8
11
|
context 'any page definition' do
|
9
12
|
context 'providing a page title to be verified' do
|
10
13
|
it 'should specify and verify the page title' do
|
11
14
|
watir_browser.should_receive(:title).twice.and_return('Test App')
|
12
15
|
watir_definition.check_title
|
16
|
+
|
17
|
+
selenium_browser.should_receive(:title).twice.and_return('Test App')
|
18
|
+
selenium_definition.check_title
|
13
19
|
end
|
14
20
|
|
15
21
|
it 'should raise an error if the page title is not verified' do
|
@@ -27,6 +33,30 @@ describe Fluent::Generators do
|
|
27
33
|
watir_browser.should_receive(:title).twice.and_return('Symbiote')
|
28
34
|
QuickDefinition.new(watir_browser).check_title
|
29
35
|
end
|
36
|
+
|
37
|
+
it 'should allow frames to act as a context' do
|
38
|
+
watir_browser.should_receive(:frame).with(id: 'frame').and_return(watir_browser)
|
39
|
+
watir_browser.should_receive(:text_field).and_return(watir_browser)
|
40
|
+
web_element = watir_definition.framedName_text_field
|
41
|
+
web_element.should_not be_nil
|
42
|
+
web_element.should be_instance_of Fluent::WebElements::TextField
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'automatically looking for an element' do
|
46
|
+
it 'should specify and verify an expected elements' do
|
47
|
+
watir_definition.should_receive(:name_object).and_return(watir_browser)
|
48
|
+
watir_browser.should_receive(:when_present).with(5).and_return(watir_browser)
|
49
|
+
watir_definition.check_objects
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should raise an error if an expected elements are not verified' do
|
53
|
+
class QuickDefinition
|
54
|
+
include Fluent
|
55
|
+
look_for :fakeLink
|
56
|
+
end
|
57
|
+
expect { QuickDefinition.new(watir_browser).check_objects }.to raise_error
|
58
|
+
end
|
59
|
+
end
|
30
60
|
end
|
31
61
|
|
32
62
|
context 'a definition using watir-webdriver' do
|
@@ -37,6 +67,16 @@ describe Fluent::Generators do
|
|
37
67
|
end
|
38
68
|
end
|
39
69
|
end
|
70
|
+
|
71
|
+
context 'a definition using selenium-webdriver' do
|
72
|
+
context 'providing a url' do
|
73
|
+
it 'should navigate to the page when viewed' do
|
74
|
+
selenium_browser.should_receive(:navigate).and_return(selenium_browser)
|
75
|
+
selenium_browser.should_receive(:to)
|
76
|
+
selenium_definition.view
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
40
80
|
|
41
81
|
end
|
42
82
|
end
|