selenium-webdriver-viewers 0.0.1 → 0.0.2
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.
- data/VERSION +1 -1
- data/lib/browser-instance.rb +0 -1
- data/lib/element_value_reader.rb +1 -2
- data/lib/viewer.rb +4 -3
- data/selenium-webdriver-viewers.gemspec +2 -2
- data/spec/element_value_reader_spec.rb +24 -20
- data/spec/viewer_spec.rb +14 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/browser-instance.rb
CHANGED
data/lib/element_value_reader.rb
CHANGED
@@ -40,8 +40,7 @@ module WebViewer
|
|
40
40
|
|
41
41
|
def element_as_viewer(*arguments)
|
42
42
|
viewer = @output_type.new
|
43
|
-
|
44
|
-
viewer.instance_variable_set(:@base_element_proc, base_element_proc)
|
43
|
+
viewer.base_element = lambda { @element_reader.get(*arguments) }
|
45
44
|
viewer
|
46
45
|
end
|
47
46
|
|
data/lib/viewer.rb
CHANGED
@@ -15,7 +15,8 @@ module WebViewer
|
|
15
15
|
:enabled?, :find_element, :find_elements, :first, :hover, :location, :ref, :select, :selected?,
|
16
16
|
:send_key, :send_keys, :size, :style, :submit, :tag_name, :text, :toggle, :value,
|
17
17
|
:element_present?, :wait_for_element_present
|
18
|
-
|
18
|
+
|
19
|
+
attr_writer :base_element
|
19
20
|
|
20
21
|
def self.included(target)
|
21
22
|
super
|
@@ -23,8 +24,8 @@ module WebViewer
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def base_element
|
26
|
-
return @
|
27
|
-
browser.find_element(:tag_name, 'html')
|
27
|
+
return @base_element.call if @base_element.respond_to?(:call)
|
28
|
+
return @base_element || browser.find_element(:tag_name, 'html')
|
28
29
|
end
|
29
30
|
|
30
31
|
def showing?
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{selenium-webdriver-viewers}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Collas"]
|
12
|
-
s.date = %q{2010-12-
|
12
|
+
s.date = %q{2010-12-20}
|
13
13
|
s.description = %q{ This gem makes it easy to create page and web viewer objects for use by tests that use selenium-webdriver. By
|
14
14
|
using page and viewer objects, you can decouple your tests from the html details so that they can focus
|
15
15
|
instead on describing the behaviour of your application.
|
@@ -46,27 +46,27 @@ describe WebViewer::ElementValueReader do
|
|
46
46
|
|
47
47
|
end
|
48
48
|
|
49
|
-
describe
|
50
|
-
describe
|
51
|
-
describe
|
52
|
-
describe
|
49
|
+
describe('and the type is :auto', :output_type => :auto) { it_should_behave_like UnimplementedOutputType }
|
50
|
+
describe('and the type is :link', :output_type => :link) { it_should_behave_like UnimplementedOutputType }
|
51
|
+
describe('and the type is :select_by_text', :output_type => :select_by_text) { it_should_behave_like UnimplementedOutputType }
|
52
|
+
describe('and the type is :select_by_value', :output_type => :select_by_value) { it_should_behave_like UnimplementedOutputType }
|
53
53
|
|
54
54
|
describe 'and the output type is a class' do
|
55
55
|
|
56
|
-
class FakeViewer
|
57
|
-
attr :base_element_proc
|
58
|
-
end
|
59
|
-
|
60
56
|
before do
|
61
|
-
|
57
|
+
output_viewer_class = Class.new(Object)
|
58
|
+
@output_viewer = stub('a different viewer', :base_element= => nil)
|
59
|
+
output_viewer_class.stub(:new).and_return(@output_viewer)
|
60
|
+
@value_reader = WebViewer::ElementValueReader.new(@element_reader, output_viewer_class)
|
62
61
|
end
|
63
62
|
|
64
63
|
it 'should return an instance of the specified class' do
|
65
|
-
@value_reader.get.should
|
64
|
+
@value_reader.get.should == @output_viewer
|
66
65
|
end
|
67
66
|
|
68
|
-
it 'should put a
|
69
|
-
@
|
67
|
+
it 'should put a base_element proc into the returned object' do
|
68
|
+
@output_viewer.should_receive(:base_element=).with(a_kind_of(Proc))
|
69
|
+
@value_reader.get
|
70
70
|
end
|
71
71
|
|
72
72
|
end
|
@@ -134,24 +134,28 @@ describe WebViewer::ElementValueReader do
|
|
134
134
|
|
135
135
|
end
|
136
136
|
|
137
|
-
describe
|
138
|
-
describe
|
139
|
-
describe
|
140
|
-
describe
|
137
|
+
describe('and the type is :auto', :output_type => :auto) { it_should_behave_like UnimplementedOutputType }
|
138
|
+
describe('and the type is :link', :output_type => :link) { it_should_behave_like UnimplementedOutputType }
|
139
|
+
describe('and the type is :select_by_text', :output_type => :select_by_text) { it_should_behave_like UnimplementedOutputType }
|
140
|
+
describe('and the type is :select_by_value', :output_type => :select_by_value) { it_should_behave_like UnimplementedOutputType }
|
141
141
|
|
142
142
|
describe 'and the output type is a class' do
|
143
143
|
|
144
144
|
before do
|
145
|
-
|
145
|
+
output_viewer_class = Class.new(Object)
|
146
|
+
@output_viewer = stub('a different viewer', :base_element= => nil)
|
147
|
+
output_viewer_class.stub(:new).and_return(@output_viewer)
|
148
|
+
@value_reader = WebViewer::ElementValueReader.new(@element_reader, output_viewer_class)
|
146
149
|
end
|
147
150
|
|
148
151
|
it 'should return an instance of the specified class' do
|
149
|
-
@value_reader[1, 2].should
|
152
|
+
@value_reader[1, 2].should == @output_viewer
|
150
153
|
end
|
151
154
|
|
152
|
-
it 'should put a
|
155
|
+
it 'should put a base_element proc that gets the element from the reader into the returned object' do
|
156
|
+
@output_viewer.stub(:base_element=) { |assigned_base_element_proc| assigned_base_element_proc.call }
|
153
157
|
@element_reader.should_receive(:get).with(1, 2)
|
154
|
-
@value_reader[1, 2]
|
158
|
+
@value_reader[1, 2]
|
155
159
|
end
|
156
160
|
|
157
161
|
end
|
data/spec/viewer_spec.rb
CHANGED
@@ -4,6 +4,20 @@ describe WebViewer, 'included in a class' do
|
|
4
4
|
|
5
5
|
before do
|
6
6
|
@viewer_class = Class.new(Object).extend(WebViewer)
|
7
|
+
@viewer = @viewer_class.new
|
8
|
+
@fake_browser = stub
|
9
|
+
@viewer.stub(:browser).and_return(@fake_browser)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#base_element' do
|
13
|
+
|
14
|
+
it 'should return the base element if one has been assigned' do
|
15
|
+
pending
|
16
|
+
fake_element = stub('fake element')
|
17
|
+
@viewer.base_element = fake_element
|
18
|
+
@viewer.base_element.should == fake_element
|
19
|
+
end
|
20
|
+
|
7
21
|
end
|
8
22
|
|
9
23
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-webdriver-viewers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Collas
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-20 00:00:00 +11:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|