symbiont 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/HISTORY.md +6 -0
 - data/README.md +2 -0
 - data/lib/symbiont/generators.rb +75 -0
 - data/lib/symbiont/platform_selenium/platform_object.rb +51 -1
 - data/lib/symbiont/platform_watir/platform_object.rb +50 -1
 - data/lib/symbiont/version.rb +3 -3
 - data/lib/symbiont/web_objects/_common.rb +9 -0
 - data/lib/symbiont/web_objects/button.rb +9 -0
 - data/lib/symbiont/web_objects/link.rb +9 -0
 - data/lib/symbiont/web_objects/text_field.rb +9 -0
 - data/spec/spec_helper.rb +5 -0
 - data/spec/symbiont/generators/button_generators_spec.rb +50 -0
 - data/spec/symbiont/generators/link_generators_spec.rb +48 -0
 - data/spec/symbiont/generators/text_field_generators_spec.rb +63 -0
 - data/spec/symbiont/generators_spec.rb +11 -0
 - data/test/symbiont_selenium.rb +20 -0
 - data/test/symbiont_watir.rb +21 -1
 - metadata +17 -10
 
    
        data/HISTORY.md
    CHANGED
    
    | 
         @@ -1,6 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Change Log and History
         
     | 
| 
       2 
2 
     | 
    
         
             
            ======================
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
            Version 0.0.2 / 2012-03-15
         
     | 
| 
      
 5 
     | 
    
         
            +
            --------------------------
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            This implementation of Symbiont is designed to show the basics of how platform objects, web objects, and a generator mechanism work together to create a test script style that normalizes execution with Selenium and Watir and provides a convention-based approach to interaction with browser objects.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       4 
10 
     | 
    
         
             
            Version 0.0.1 / 2012-03-02
         
     | 
| 
       5 
11 
     | 
    
         
             
            --------------------------
         
     | 
| 
       6 
12 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -6,6 +6,8 @@ Description 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            The Symbiont gem is designed to provide an open framework for running automated tests against a browser using popular web testing interfaces.
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            Right now the best information on the purpose of this project and how it works can be found on [my Symbiont-tagged blog posts](http://testerstories.com/?cat=16).
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       9 
11 
     | 
    
         | 
| 
       10 
12 
     | 
    
         
             
            Meaning
         
     | 
| 
       11 
13 
     | 
    
         
             
            -------
         
     | 
    
        data/lib/symbiont/generators.rb
    CHANGED
    
    | 
         @@ -15,5 +15,80 @@ module Symbiont 
     | 
|
| 
       15 
15 
     | 
    
         
             
                  end
         
     | 
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
                # This method allows for a begin_at() method in definitions. The
         
     | 
| 
      
 19 
     | 
    
         
            +
                # URL provided can be navigated to using the generated start()
         
     | 
| 
      
 20 
     | 
    
         
            +
                # method on a definition instance.
         
     | 
| 
      
 21 
     | 
    
         
            +
                #
         
     | 
| 
      
 22 
     | 
    
         
            +
                # @see Symbiont::Generators#url_is
         
     | 
| 
      
 23 
     | 
    
         
            +
                # @param [String] url the resource identifier to access
         
     | 
| 
      
 24 
     | 
    
         
            +
                # @return [Nil]
         
     | 
| 
      
 25 
     | 
    
         
            +
                def begin_at(url)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  define_method("start") do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    @platform.visit(url)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                # Definition method for links. Methods for the following actions will
         
     | 
| 
      
 32 
     | 
    
         
            +
                # be created:
         
     | 
| 
      
 33 
     | 
    
         
            +
                # * reference a link (identifier_object, identifier_link)
         
     | 
| 
      
 34 
     | 
    
         
            +
                # * click a link (identifier)
         
     | 
| 
      
 35 
     | 
    
         
            +
                # @param [Symbol] identifier the friendly name of the web object
         
     | 
| 
      
 36 
     | 
    
         
            +
                # @param [optional, Hash] locator the key/values that identify the object
         
     | 
| 
      
 37 
     | 
    
         
            +
                # @return [Object] instance of Symbiont::WebObjects::Link
         
     | 
| 
      
 38 
     | 
    
         
            +
                def link(identifier, locator)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  define_method("#{identifier}_object") do
         
     | 
| 
      
 40 
     | 
    
         
            +
                    @platform.get_link_for(locator.clone)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  alias_method "#{identifier}_link".to_sym, "#{identifier}_object".to_sym
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  define_method(identifier) do
         
     | 
| 
      
 46 
     | 
    
         
            +
                    @platform.click_link_for(locator.clone)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                # Definition method for buttons. Methods for the following actions will
         
     | 
| 
      
 51 
     | 
    
         
            +
                # be created:
         
     | 
| 
      
 52 
     | 
    
         
            +
                # * reference a button (identifier_object, identifier_button)
         
     | 
| 
      
 53 
     | 
    
         
            +
                # * click a button (identifier)
         
     | 
| 
      
 54 
     | 
    
         
            +
                # @param [Symbol] identifier the friendly name of the web object
         
     | 
| 
      
 55 
     | 
    
         
            +
                # @param [optional, Hash] locator the key/values that identify the object
         
     | 
| 
      
 56 
     | 
    
         
            +
                # @return [Object] instance of Symbiont::WebObjects::Button
         
     | 
| 
      
 57 
     | 
    
         
            +
                def button(identifier, locator)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  define_method("#{identifier}_object") do
         
     | 
| 
      
 59 
     | 
    
         
            +
                    @platform.get_button_for(locator.clone)
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  alias_method "#{identifier}_button".to_sym, "#{identifier}_object".to_sym
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  define_method(identifier) do
         
     | 
| 
      
 65 
     | 
    
         
            +
                    @platform.click_button_for(locator.clone)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                # Definition method for text fields. Methods for the following actions
         
     | 
| 
      
 70 
     | 
    
         
            +
                # will be created:
         
     | 
| 
      
 71 
     | 
    
         
            +
                # * reference a text field (identifier_object, identifier_button)
         
     | 
| 
      
 72 
     | 
    
         
            +
                # * get text from a text field (identifier)
         
     | 
| 
      
 73 
     | 
    
         
            +
                # * set text in a text field (identifier=)
         
     | 
| 
      
 74 
     | 
    
         
            +
                # @param [Symbol] identifier the friendly name of the web object
         
     | 
| 
      
 75 
     | 
    
         
            +
                # @param [optional, Hash] locator the key/values that identify the object
         
     | 
| 
      
 76 
     | 
    
         
            +
                # @return [Object] instance of Symbiont::WebObjects::TextField
         
     | 
| 
      
 77 
     | 
    
         
            +
                def text_field(identifier, locator)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  define_method("#{identifier}_object") do
         
     | 
| 
      
 79 
     | 
    
         
            +
                    @platform.get_text_field_for(locator.clone)
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                  alias_method "#{identifier}_text_field".to_sym, "#{identifier}_object".to_sym
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                  define_method(identifier) do
         
     | 
| 
      
 85 
     | 
    
         
            +
                    @platform.get_text_field_value_for(locator.clone)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                  define_method("#{identifier}=") do |value|
         
     | 
| 
      
 89 
     | 
    
         
            +
                    @platform.set_text_field_value_for(locator.clone, value)
         
     | 
| 
      
 90 
     | 
    
         
            +
                  end
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
       18 
93 
     | 
    
         
             
              end # module: Generators
         
     | 
| 
       19 
94 
     | 
    
         
             
            end # module: Symbiont
         
     | 
| 
         @@ -14,8 +14,58 @@ module Symbiont 
     | 
|
| 
       14 
14 
     | 
    
         
             
                      @browser.navigate.to(url)
         
     | 
| 
       15 
15 
     | 
    
         
             
                    end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                    # Platform method to return a link object.
         
     | 
| 
      
 18 
     | 
    
         
            +
                    # Link objects are of type: Symbiont::WebObjects::Link
         
     | 
| 
      
 19 
     | 
    
         
            +
                    # @see Symbiont::Generators#link
         
     | 
| 
      
 20 
     | 
    
         
            +
                    def get_link_for(locator)
         
     | 
| 
      
 21 
     | 
    
         
            +
                      web_object = @browser.find_element(locator.keys.first, locator.values.first)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      WebObjects::Link.new()
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    # Platform method to click a link object.
         
     | 
| 
      
 26 
     | 
    
         
            +
                    # @see Symbiont::Generators#link
         
     | 
| 
      
 27 
     | 
    
         
            +
                    def click_link_for(locator)
         
     | 
| 
      
 28 
     | 
    
         
            +
                      @browser.find_element(locator.keys.first, locator.values.first).click
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    # Platform method to return a button object.
         
     | 
| 
      
 32 
     | 
    
         
            +
                    # Button objects are of type: Symbiont::WebObjects::Button
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # @see Symbiont::Generators#button
         
     | 
| 
      
 34 
     | 
    
         
            +
                    def get_button_for(locator)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      web_object = @browser.find_element(locator.keys.first, locator.values.first)
         
     | 
| 
      
 36 
     | 
    
         
            +
                      WebObjects::Button.new()
         
     | 
| 
      
 37 
     | 
    
         
            +
                    end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    # Platform method to click a button object.
         
     | 
| 
      
 40 
     | 
    
         
            +
                    # @see Symbiont::Generators#button
         
     | 
| 
      
 41 
     | 
    
         
            +
                    def click_button_for(locator)
         
     | 
| 
      
 42 
     | 
    
         
            +
                      @browser.find_element(locator.keys.first, locator.values.first).click
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    # Platform method to return a text field object.
         
     | 
| 
      
 46 
     | 
    
         
            +
                    # Text field objects are of type: Symbiont::WebObjects::TextField
         
     | 
| 
      
 47 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 48 
     | 
    
         
            +
                    def get_text_field_for(locator)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      web_object = @browser.find_element(locator.keys.first, locator.values.first)
         
     | 
| 
      
 50 
     | 
    
         
            +
                      WebObjects::TextField.new()
         
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    # Platform method to retrieve text from a text field object.
         
     | 
| 
      
 54 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 55 
     | 
    
         
            +
                    def get_text_field_value_for(locator)
         
     | 
| 
      
 56 
     | 
    
         
            +
                      @browser.find_element(locator.keys.first, locator.values.first).attribute('value')
         
     | 
| 
      
 57 
     | 
    
         
            +
                    end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                    # Platform method to enter text into a text field object.
         
     | 
| 
      
 60 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 61 
     | 
    
         
            +
                    def set_text_field_value_for(locator, value)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      @browser.find_element(locator.keys.first, locator.values.first).clear
         
     | 
| 
      
 63 
     | 
    
         
            +
                      @browser.find_element(locator.keys.first, locator.values.first).send_keys(value)
         
     | 
| 
      
 64 
     | 
    
         
            +
                    end
         
     | 
| 
       17 
65 
     | 
    
         
             
                  end # class: PlatformObject
         
     | 
| 
       18 
66 
     | 
    
         | 
| 
       19 
67 
     | 
    
         
             
                end # module: SeleniumWebDriver
         
     | 
| 
       20 
68 
     | 
    
         
             
              end # module: Platforms
         
     | 
| 
       21 
     | 
    
         
            -
            end # module: Symbiont
         
     | 
| 
      
 69 
     | 
    
         
            +
            end # module: Symbiont
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            Dir["#{File.dirname(__FILE__)}/../web_objects/**/*.rb"].sort.each { |file| require file }
         
     | 
| 
         @@ -14,8 +14,57 @@ module Symbiont 
     | 
|
| 
       14 
14 
     | 
    
         
             
                      @browser.goto(url)
         
     | 
| 
       15 
15 
     | 
    
         
             
                    end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                    # Platform method to return a link object.
         
     | 
| 
      
 18 
     | 
    
         
            +
                    # Link objects are of type: Symbiont::WebObjects::Link
         
     | 
| 
      
 19 
     | 
    
         
            +
                    # @see Symbiont::Generators#link
         
     | 
| 
      
 20 
     | 
    
         
            +
                    def get_link_for(locator)
         
     | 
| 
      
 21 
     | 
    
         
            +
                      web_object = @browser.instance_eval "link(locator)"
         
     | 
| 
      
 22 
     | 
    
         
            +
                      WebObjects::Link.new()
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    # Platform method to click a link object.
         
     | 
| 
      
 26 
     | 
    
         
            +
                    # @see Symbiont::Generators#link
         
     | 
| 
      
 27 
     | 
    
         
            +
                    def click_link_for(locator)
         
     | 
| 
      
 28 
     | 
    
         
            +
                      @browser.instance_eval "link(locator).click"
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    # Platform method to return a button object.
         
     | 
| 
      
 32 
     | 
    
         
            +
                    # Button objects are of type: Symbiont::WebObjects::Button
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # @see Symbiont::Generators#button
         
     | 
| 
      
 34 
     | 
    
         
            +
                    def get_button_for(locator)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      web_object = @browser.instance_eval "button(locator)"
         
     | 
| 
      
 36 
     | 
    
         
            +
                      WebObjects::Button.new()
         
     | 
| 
      
 37 
     | 
    
         
            +
                    end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    # Platform method to click a button object.
         
     | 
| 
      
 40 
     | 
    
         
            +
                    # @see Symbiont::Generators#button
         
     | 
| 
      
 41 
     | 
    
         
            +
                    def click_button_for(locator)
         
     | 
| 
      
 42 
     | 
    
         
            +
                      @browser.instance_eval "button(locator).click"
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    # Platform method to return a text field object.
         
     | 
| 
      
 46 
     | 
    
         
            +
                    # Text field objects are of type: Symbiont::WebObjects::TextField
         
     | 
| 
      
 47 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 48 
     | 
    
         
            +
                    def get_text_field_for(locator)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      @browser.instance_eval "text_field(locator)"
         
     | 
| 
      
 50 
     | 
    
         
            +
                      WebObjects::TextField.new()
         
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    # Platform method to retrieve text from a text field object.
         
     | 
| 
      
 54 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 55 
     | 
    
         
            +
                    def get_text_field_value_for(locator)
         
     | 
| 
      
 56 
     | 
    
         
            +
                      @browser.instance_eval "text_field(locator).value"
         
     | 
| 
      
 57 
     | 
    
         
            +
                    end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                    # Platform method to enter text into a text field object.
         
     | 
| 
      
 60 
     | 
    
         
            +
                    # @see Symbiont::Generators#text_field
         
     | 
| 
      
 61 
     | 
    
         
            +
                    def set_text_field_value_for(locator, value)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      @browser.instance_eval "text_field(locator).set(value)"
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
       17 
64 
     | 
    
         
             
                  end # class: PlatformObject
         
     | 
| 
       18 
65 
     | 
    
         | 
| 
       19 
66 
     | 
    
         
             
                end # module: WatirWebDriver
         
     | 
| 
       20 
67 
     | 
    
         
             
              end # module: Platforms
         
     | 
| 
       21 
     | 
    
         
            -
            end # module: Symbiont
         
     | 
| 
      
 68 
     | 
    
         
            +
            end # module: Symbiont
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            Dir["#{File.dirname(__FILE__)}/../web_objects/**/*.rb"].sort.each { |file| require file }
         
     | 
    
        data/lib/symbiont/version.rb
    CHANGED
    
    | 
         @@ -1,3 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Symbiont
         
     | 
| 
       2 
     | 
    
         
            -
              VERSION = "0.0. 
     | 
| 
       3 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            module Symbiont
         
     | 
| 
      
 2 
     | 
    
         
            +
              VERSION = "0.0.2"
         
     | 
| 
      
 3 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -15,6 +15,11 @@ class DefinitionTest 
     | 
|
| 
       15 
15 
     | 
    
         
             
              include Symbiont
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
              url_is "http://localhost:4567"
         
     | 
| 
      
 18 
     | 
    
         
            +
              begin_at "http://localhost:4567"
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              link :reset_password, id: "resetPassword"
         
     | 
| 
      
 21 
     | 
    
         
            +
              button :submit, id: "btnSubmit"
         
     | 
| 
      
 22 
     | 
    
         
            +
              text_field :login_name, id: "loginName"
         
     | 
| 
       18 
23 
     | 
    
         
             
            end
         
     | 
| 
       19 
24 
     | 
    
         | 
| 
       20 
25 
     | 
    
         
             
            def mock_browser_for_watir
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Symbiont::Generators do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:watir_browser) { mock_browser_for_watir }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:selenium_browser) { mock_browser_for_selenium }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:watir_definition) { DefinitionTest.new(watir_browser) }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              describe "button web objects" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                context "when declared in a definition" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  it "should generate methods for referencing the button" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    watir_definition.should respond_to(:submit_object)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    watir_definition.should respond_to(:submit_button)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    selenium_definition.should respond_to(:submit_object)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    selenium_definition.should respond_to(:submit_button)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                context "used by the watir platform" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it "should locate the button" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    watir_browser.should_receive(:button).and_return(watir_browser)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    web_object = watir_definition.submit_object
         
     | 
| 
      
 24 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 25 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::Button
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  it "should click the button" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    watir_browser.should_receive(:button).and_return(watir_browser)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    watir_browser.should_receive(:click)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    watir_definition.submit
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                context "used by the selenium platform" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  it "should locate the button" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).and_return(selenium_browser)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    web_object = selenium_definition.submit_object
         
     | 
| 
      
 39 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 40 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::Button
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  it "should click the button" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).and_return(selenium_browser)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    selenium_browser.should_receive(:click)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    selenium_definition.submit
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Symbiont::Generators do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:watir_browser) { mock_browser_for_watir }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:selenium_browser) { mock_browser_for_selenium }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:watir_definition) { DefinitionTest.new(watir_browser) }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              describe "link web objects" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                context "when declared in a definition" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  it "should generate methods for referencing the link" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    watir_definition.should respond_to(:reset_password_object)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    watir_definition.should respond_to(:reset_password_link)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    selenium_definition.should respond_to(:reset_password_object)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    selenium_definition.should respond_to(:reset_password_link)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                context "when used by the watir platform" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it "should locate the link" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    watir_browser.should_receive(:link).and_return(watir_browser)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    web_object = watir_definition.reset_password_object
         
     | 
| 
      
 24 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 25 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::Link
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  it "should click the link" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    watir_browser.stub_chain(:link, :click)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    watir_definition.reset_password
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                context "when used by the selenium platform" do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  it "should locate the link" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).and_return(selenium_browser)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    web_object = selenium_definition.reset_password_object
         
     | 
| 
      
 38 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 39 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::Link
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  it "should click the link" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    selenium_browser.stub_chain(:find_element, :click)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    selenium_definition.reset_password
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,63 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Symbiont::Generators do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:watir_browser) { mock_browser_for_watir }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:selenium_browser) { mock_browser_for_selenium }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:watir_definition) { DefinitionTest.new(watir_browser) }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              describe "text field web objects" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                context "when declared in a definition" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  it "should generate methods for referencing the text field" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    watir_definition.should respond_to(:login_name_text_field)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    watir_definition.should respond_to(:login_name_object)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    selenium_definition.should respond_to(:login_name_text_field)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    selenium_definition.should respond_to(:login_name_object)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                context "when used by the watir platform" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it "should locate the text field" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    watir_browser.should_receive(:text_field).and_return(watir_browser)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    web_object = watir_definition.login_name_object
         
     | 
| 
      
 24 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 25 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::TextField
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  it "should retrieve text from the text field" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    watir_browser.should_receive(:text_field).and_return(watir_browser)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    watir_browser.should_receive(:value).and_return("testing")
         
     | 
| 
      
 31 
     | 
    
         
            +
                    watir_definition.login_name.should == "testing"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  it "should enter text into a text field" do
         
     | 
| 
      
 35 
     | 
    
         
            +
                    watir_browser.should_receive(:text_field).and_return(watir_browser)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    watir_browser.should_receive(:set).with("testing")
         
     | 
| 
      
 37 
     | 
    
         
            +
                    watir_definition.login_name = "testing"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                context "when used by the selenium platform" do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  it "should locate the text field" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).and_return(selenium_browser)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    web_object = selenium_definition.login_name_object
         
     | 
| 
      
 45 
     | 
    
         
            +
                    web_object.should_not be_nil
         
     | 
| 
      
 46 
     | 
    
         
            +
                    web_object.should be_instance_of Symbiont::WebObjects::TextField
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  it "should retrieve text from the text field" do
         
     | 
| 
      
 50 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).and_return(selenium_browser)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    selenium_browser.should_receive(:attribute).with('value').and_return("testing")
         
     | 
| 
      
 52 
     | 
    
         
            +
                    selenium_definition.login_name.should == "testing"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  it "should enter text into a text field" do
         
     | 
| 
      
 56 
     | 
    
         
            +
                    selenium_browser.should_receive(:find_element).twice.and_return(selenium_browser)
         
     | 
| 
      
 57 
     | 
    
         
            +
                    selenium_browser.should_receive(:clear)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    selenium_browser.should_receive(:send_keys).with("testing")
         
     | 
| 
      
 59 
     | 
    
         
            +
                    selenium_definition.login_name = "testing"
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -12,6 +12,11 @@ describe Symbiont::Generators do 
     | 
|
| 
       12 
12 
     | 
    
         
             
                    watir_browser.should_receive(:goto)
         
     | 
| 
       13 
13 
     | 
    
         
             
                    watir_definition.view
         
     | 
| 
       14 
14 
     | 
    
         
             
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  it "should navigate to the page when started" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                    watir_browser.should_receive(:goto)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    watir_definition.start
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
       15 
20 
     | 
    
         
             
                end
         
     | 
| 
       16 
21 
     | 
    
         
             
              end
         
     | 
| 
       17 
22 
     | 
    
         | 
| 
         @@ -22,6 +27,12 @@ describe Symbiont::Generators do 
     | 
|
| 
       22 
27 
     | 
    
         
             
                    selenium_browser.should_receive(:to)
         
     | 
| 
       23 
28 
     | 
    
         
             
                    selenium_definition.view
         
     | 
| 
       24 
29 
     | 
    
         
             
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  it "should navigate to the page when started" do
         
     | 
| 
      
 32 
     | 
    
         
            +
                    selenium_browser.should_receive(:navigate).and_return(selenium_browser)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    selenium_browser.should_receive(:to)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    selenium_definition.start
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
       25 
36 
     | 
    
         
             
                end
         
     | 
| 
       26 
37 
     | 
    
         
             
              end
         
     | 
| 
       27 
38 
     | 
    
         | 
    
        data/test/symbiont_selenium.rb
    CHANGED
    
    | 
         @@ -6,10 +6,30 @@ class Login 
     | 
|
| 
       6 
6 
     | 
    
         
             
              include Symbiont
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              url_is "http://localhost:4567"
         
     | 
| 
      
 9 
     | 
    
         
            +
              begin_at "http://localhost:4567"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              link :test_page, id: "testPage"
         
     | 
| 
      
 12 
     | 
    
         
            +
              button :clickme, id: "clickme_id"
         
     | 
| 
      
 13 
     | 
    
         
            +
              text_field :book_title, id: "title"
         
     | 
| 
       9 
14 
     | 
    
         
             
            end
         
     | 
| 
       10 
15 
     | 
    
         | 
| 
       11 
16 
     | 
    
         
             
            @browser_selenium = Selenium::WebDriver.for(:firefox)
         
     | 
| 
       12 
17 
     | 
    
         
             
            selenium_test = Login.new(@browser_selenium)
         
     | 
| 
       13 
18 
     | 
    
         
             
            selenium_test.view
         
     | 
| 
       14 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
            test_link = selenium_test.test_page_object
         
     | 
| 
      
 21 
     | 
    
         
            +
            puts test_link
         
     | 
| 
      
 22 
     | 
    
         
            +
            selenium_test.test_page
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            test_text_field = selenium_test.book_title_object
         
     | 
| 
      
 25 
     | 
    
         
            +
            puts test_text_field
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            selenium_test.book_title = "Revelation Space"
         
     | 
| 
      
 28 
     | 
    
         
            +
            book = selenium_test.book_title
         
     | 
| 
      
 29 
     | 
    
         
            +
            puts "Book title is '#{book}'."
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            test_button = selenium_test.clickme_object
         
     | 
| 
      
 32 
     | 
    
         
            +
            puts test_button
         
     | 
| 
      
 33 
     | 
    
         
            +
            selenium_test.clickme
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       15 
35 
     | 
    
         
             
            @browser_selenium.close
         
     | 
    
        data/test/symbiont_watir.rb
    CHANGED
    
    | 
         @@ -6,10 +6,30 @@ class Login 
     | 
|
| 
       6 
6 
     | 
    
         
             
              include Symbiont
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              url_is "http://localhost:4567"
         
     | 
| 
      
 9 
     | 
    
         
            +
              begin_at "http://localhost:4567"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              link :test_page, id: "testPage"
         
     | 
| 
      
 12 
     | 
    
         
            +
              button :clickme, id: "clickme_id"
         
     | 
| 
      
 13 
     | 
    
         
            +
              text_field :book_title, id: "title"
         
     | 
| 
       9 
14 
     | 
    
         
             
            end
         
     | 
| 
       10 
15 
     | 
    
         | 
| 
       11 
16 
     | 
    
         
             
            @browser_watir = Watir::Browser.new(:firefox)
         
     | 
| 
       12 
17 
     | 
    
         
             
            watir_test = Login.new(@browser_watir)
         
     | 
| 
       13 
18 
     | 
    
         
             
            watir_test.view
         
     | 
| 
       14 
19 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
            test_link = watir_test.test_page_object
         
     | 
| 
      
 21 
     | 
    
         
            +
            puts test_link
         
     | 
| 
      
 22 
     | 
    
         
            +
            watir_test.test_page
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            test_text_field = watir_test.book_title_object
         
     | 
| 
      
 25 
     | 
    
         
            +
            puts test_text_field
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            watir_test.book_title = "Revelation Space"
         
     | 
| 
      
 28 
     | 
    
         
            +
            book = watir_test.book_title
         
     | 
| 
      
 29 
     | 
    
         
            +
            puts "Book title is '#{book}'."
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            test_button = watir_test.clickme_object
         
     | 
| 
      
 32 
     | 
    
         
            +
            puts test_button
         
     | 
| 
      
 33 
     | 
    
         
            +
            watir_test.clickme
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            @browser_watir.close
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: symbiont
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-03- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-03-15 00:00:00.000000000Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: rspec
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &27142536 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: 2.8.0
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :development
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *27142536
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: simplecov
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &27142260 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: 0.6.1
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *27142260
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: watir-webdriver
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &27141972 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - =
         
     | 
| 
         @@ -43,10 +43,10 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: 0.5.3
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *27141972
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: selenium-webdriver
         
     | 
| 
       49 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &27141684 !ruby/object:Gem::Requirement
         
     | 
| 
       50 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - =
         
     | 
| 
         @@ -54,7 +54,7 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    version: 2.20.0
         
     | 
| 
       55 
55 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       56 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       57 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *27141684
         
     | 
| 
       58 
58 
     | 
    
         
             
            description: An endosymbiotic facultative library for web application testing.
         
     | 
| 
       59 
59 
     | 
    
         
             
            email:
         
     | 
| 
       60 
60 
     | 
    
         
             
            - jeffnyman@gmail.com
         
     | 
| 
         @@ -76,7 +76,14 @@ files: 
     | 
|
| 
       76 
76 
     | 
    
         
             
            - lib/symbiont/platform_watir/platform_object.rb
         
     | 
| 
       77 
77 
     | 
    
         
             
            - lib/symbiont/platforms.rb
         
     | 
| 
       78 
78 
     | 
    
         
             
            - lib/symbiont/version.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            - lib/symbiont/web_objects/_common.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - lib/symbiont/web_objects/button.rb
         
     | 
| 
      
 81 
     | 
    
         
            +
            - lib/symbiont/web_objects/link.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
            - lib/symbiont/web_objects/text_field.rb
         
     | 
| 
       79 
83 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - spec/symbiont/generators/button_generators_spec.rb
         
     | 
| 
      
 85 
     | 
    
         
            +
            - spec/symbiont/generators/link_generators_spec.rb
         
     | 
| 
      
 86 
     | 
    
         
            +
            - spec/symbiont/generators/text_field_generators_spec.rb
         
     | 
| 
       80 
87 
     | 
    
         
             
            - spec/symbiont/generators_spec.rb
         
     | 
| 
       81 
88 
     | 
    
         
             
            - spec/symbiont/platform_object_spec.rb
         
     | 
| 
       82 
89 
     | 
    
         
             
            - spec/symbiont/symbiont_spec.rb
         
     |