fluent 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|