From 3e762a45396018133199d47d2888e36855fb0d01 Mon Sep 17 00:00:00 2001 From: Donnie Tognazzini Date: Thu, 13 Jun 2013 02:16:16 -0700 Subject: [PATCH 1/2] fix bug in Element#__full_name__ whereby an empty string could be returned --- lib/ae_page_objects/element.rb | 4 ++-- test/unit/element_test.rb | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/ae_page_objects/element.rb b/lib/ae_page_objects/element.rb index 2f93ccd3..0985c0dc 100644 --- a/lib/ae_page_objects/element.rb +++ b/lib/ae_page_objects/element.rb @@ -20,7 +20,7 @@ def initialize(parent, options_or_locator = {}) raise ArgumentError, ":name or :locator is required" unless @name || @locator @locator ||= default_locator - + super(scoped_node) end @@ -38,7 +38,7 @@ def document def __full_name__ if parent.respond_to?(:__full_name__) - [ parent.__full_name__, __name__ ].compact.join('_') + [ parent.__full_name__, __name__ ].compact.presence.try(:join, '_') else __name__ end diff --git a/test/unit/element_test.rb b/test/unit/element_test.rb index d3a2f337..9362fb15 100644 --- a/test/unit/element_test.rb +++ b/test/unit/element_test.rb @@ -96,5 +96,26 @@ def test_document puts e.backtrace.join("\n") raise e end + + def test_full_name + kitty_page_class = AePageObjects::Document.new_subclass + kitty_class = AePageObjects::Element.new_subclass do + def configure(*) + super + @name = nil + end + end + + capybara_stub.browser.expects(:window_handle).returns("window_handle") + + kitty_page = kitty_page_class.new + capybara_stub.session.stubs(:find).returns(capybara_stub.session) + + kitty1 = kitty_class.new(kitty_page, :locator => 'purr') + assert_nil kitty1.full_name + + kitty2 = kitty_class.new(kitty1, :locator => 'purr') + assert_nil kitty2.full_name + end end end \ No newline at end of file From 68cb6c5bc5ecb195b35e5cd6394f4da230e4ee6d Mon Sep 17 00:00:00 2001 From: Donnie Tognazzini Date: Thu, 13 Jun 2013 11:43:51 -0700 Subject: [PATCH 2/2] faulting in a helper from the document_tracking branch --- test/unit_helper.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/unit_helper.rb b/test/unit_helper.rb index 96608be7..a28e09cc 100644 --- a/test/unit_helper.rb +++ b/test/unit_helper.rb @@ -13,4 +13,16 @@ class ActiveSupport::TestCase include NodeFieldTestHelpers include AfCruft + + def capybara_stub + @capybara_stub ||= begin + browser_stub = stub + driver_stub = stub(:browser => browser_stub) + session_stub = stub(:driver => driver_stub) + + Capybara.stubs(:current_session).returns(session_stub) + + stub(:session => session_stub, :browser => browser_stub, :driver => driver_stub) + end + end end