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
2 changes: 0 additions & 2 deletions lib/ae_page_objects.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ module AePageObjects

module Dsl
autoload :Element, 'ae_page_objects/core/dsl/element'
autoload :NestedElement, 'ae_page_objects/core/dsl/nested_element'
autoload :Collection, 'ae_page_objects/core/dsl/collection'
autoload :FormFor, 'ae_page_objects/core/dsl/form_for'
end
Expand All @@ -38,7 +37,6 @@ module Concerns
autoload :Element, 'ae_page_objects/element'
autoload :ElementProxy, 'ae_page_objects/element_proxy'

autoload :HasOne, 'ae_page_objects/elements/has_one'
autoload :Collection, 'ae_page_objects/elements/collection'
autoload :Form, 'ae_page_objects/elements/form'
autoload :Select, 'ae_page_objects/elements/select'
Expand Down
18 changes: 9 additions & 9 deletions lib/ae_page_objects/core/dsl/element.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ def element_attributes
end
end

def element(name, options = {})
options = options.dup
klass = field_klass(options)
def element(name, options = {}, &block)
options = options.dup
klass = field_klass(options, &block)

self.element_attributes[name.to_sym] = klass

Expand All @@ -30,13 +30,13 @@ def element(name, options = {})

private

def field_klass(options)
field_type = options.delete(:is)

if field_type.is_a? Class
field_type
def field_klass(options, &block)
klass = options.delete(:is) || ::AePageObjects::Element
if block_given?
klass.new_subclass(&block)
else
::AePageObjects::Element
klass
end
end
end
Expand Down
6 changes: 3 additions & 3 deletions lib/ae_page_objects/core/dsl/form_for.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ def form_for(form_name, options = {}, &block)

element(form_name, options)

klass.element_attributes.each do |node_name, node_klazz|
delegate node_name, :to => form_name
self.element_attributes[node_name] = node_klazz
klass.element_attributes.each do |element_name, element_klazz|
delegate element_name, :to => form_name
self.element_attributes[element_name] = element_klazz
end
end
end
Expand Down
24 changes: 0 additions & 24 deletions lib/ae_page_objects/core/dsl/nested_element.rb

This file was deleted.

2 changes: 1 addition & 1 deletion lib/ae_page_objects/elements/collection.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module AePageObjects
class Collection < HasOne
class Collection < Element
class_attribute :item_class, :instance_writer => false
self.item_class = Element

Expand Down
11 changes: 0 additions & 11 deletions lib/ae_page_objects/elements/has_one.rb

This file was deleted.

1 change: 0 additions & 1 deletion lib/ae_page_objects/node.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ module Methods
extend ActiveSupport::Concern

include Dsl::Element
include Dsl::NestedElement
include Dsl::Collection
include Dsl::FormFor

Expand Down
7 changes: 5 additions & 2 deletions test/test_apps/shared/test/page_objects/authors/new_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ class NewPage < ::AePageObjects::Document
element :first_name
element :last_name

collection :books, :locator => "#author_books", :row_xpath => ".//*[contains(@class, 'some-books-fool')]//*[contains(@class,'row') and not(contains(@style,'display'))]" do
collection :books,
:name => "books_attributes",
:locator => "#author_books",
:row_xpath => ".//*[contains(@class, 'some-books-fool')]//*[contains(@class,'row') and not(contains(@style,'display'))]" do
element :title
end
end
Expand All @@ -34,7 +37,7 @@ def remove_star

element :rating, :is => Rating, :locator => "#rating"

element :nested_rating, :locator => "#rating" do
element :nested_rating, :name => "nested_rating_attributes", :locator => "#rating" do
element :star, :locator => ".star"

def show_star
Expand Down
4 changes: 2 additions & 2 deletions test/test_apps/shared/test/page_objects/books/new_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ def loaded_locator
form_for "book" do
element :title

element :index, :locator => "#book_index" do
element :index, :name => "index_attributes", :locator => "#book_index" do
element :pages
end

element :author do
element :author, :name => "author_attributes" do
element :first_name
end
end
Expand Down
212 changes: 0 additions & 212 deletions test/unit/attribute_methods/nested_node_test.rb

This file was deleted.

Loading