Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/ae_page_objects/element.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down
21 changes: 21 additions & 0 deletions test/unit/element_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 12 additions & 0 deletions test/unit_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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