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 
         
     |