capybara-page-object 0.2.1 → 0.3.0
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/Gemfile +3 -1
- data/Gemfile.lock +15 -2
- data/Rakefile +27 -13
- data/VERSION +1 -1
- data/capybara-page-object.gemspec +55 -27
- data/lib/capybara-page-object.rb +6 -8
- data/lib/collections.rb +11 -0
- data/lib/element.rb +11 -0
- data/lib/element/anchor.rb +11 -0
- data/lib/element/form.rb +64 -0
- data/lib/element/form_field.rb +20 -0
- data/lib/element/image.rb +20 -0
- data/lib/element/input.rb +28 -0
- data/lib/element/list.rb +21 -0
- data/lib/element/listitem.rb +7 -0
- data/lib/element/meta.rb +16 -0
- data/lib/element/select.rb +16 -0
- data/lib/{table.rb → element/table.rb} +1 -3
- data/lib/element/textarea.rb +16 -0
- data/lib/{extractors → extractor}/common.rb +3 -11
- data/lib/{extractors → extractor}/page_level.rb +3 -13
- data/lib/html5_data.rb +14 -0
- data/lib/key_value.rb +11 -0
- data/lib/navigation.rb +16 -0
- data/lib/node.rb +76 -0
- data/spec/common_spec.rb +46 -0
- data/spec/element/anchor_spec.rb +15 -0
- data/spec/element/base_spec.rb +19 -0
- data/spec/element/form_field_spec.rb +28 -0
- data/spec/element/form_spec.rb +69 -0
- data/spec/element/image_spec.rb +30 -0
- data/spec/element/input_spec.rb +49 -0
- data/spec/element/list_spec.rb +47 -0
- data/spec/element/listitem_spec.rb +25 -0
- data/spec/element/meta_spec.rb +23 -0
- data/spec/element/select_spec.rb +36 -0
- data/spec/element/table_spec.rb +30 -0
- data/spec/element/textarea_spec.rb +19 -0
- data/{test/page.html → spec/fixtures/node.html} +0 -0
- data/{test → spec}/helper.rb +2 -11
- data/spec/node_spec.rb +45 -0
- metadata +120 -109
- data/lib/base.rb +0 -29
- data/lib/image.rb +0 -13
- data/lib/page.rb +0 -15
- data/test/image.html +0 -2
- data/test/table.html +0 -10
- data/test/test_image.rb +0 -20
- data/test/test_page.rb +0 -59
- data/test/test_table.rb +0 -20
data/lib/base.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module CapybaraPageObject
|
2
|
-
class Base
|
3
|
-
include Extractors::Common
|
4
|
-
include Extractors::PageLevel
|
5
|
-
|
6
|
-
attr_accessor :source
|
7
|
-
|
8
|
-
def initialize(source=nil)
|
9
|
-
source ||= Capybara.current_session
|
10
|
-
@source = source
|
11
|
-
end
|
12
|
-
|
13
|
-
def path(*args)
|
14
|
-
raise PageObjectMissingPath, "You need to override this"
|
15
|
-
end
|
16
|
-
|
17
|
-
def prefix
|
18
|
-
''
|
19
|
-
end
|
20
|
-
|
21
|
-
def visit
|
22
|
-
source.visit prefix + path
|
23
|
-
self
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class MissingPath < RuntimeError
|
28
|
-
end
|
29
|
-
end
|
data/lib/image.rb
DELETED
data/lib/page.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/base'
|
2
|
-
|
3
|
-
module CapybaraPageObject
|
4
|
-
class Page < CapybaraPageObject::Base
|
5
|
-
include Extractors::PageLevel
|
6
|
-
|
7
|
-
def initialize(source)
|
8
|
-
if source
|
9
|
-
@source = source
|
10
|
-
else
|
11
|
-
@source = Capybara.current_session
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/test/image.html
DELETED
data/test/table.html
DELETED
data/test/test_image.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
require 'capybara'
|
3
|
-
|
4
|
-
class TestImage< Test::Unit::TestCase
|
5
|
-
context "" do
|
6
|
-
setup do
|
7
|
-
@image = load_sample_into_model(CapybaraPageObject::Image)
|
8
|
-
end
|
9
|
-
|
10
|
-
should "src" do
|
11
|
-
assert_equal 'image_1.jpg', @image.src
|
12
|
-
end
|
13
|
-
|
14
|
-
should "src" do
|
15
|
-
assert_equal 'image 1', @image.alt
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
data/test/test_page.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
require 'capybara'
|
3
|
-
|
4
|
-
class TestCapybaraPageObject < Test::Unit::TestCase
|
5
|
-
|
6
|
-
context "Using the example.html" do
|
7
|
-
|
8
|
-
setup do
|
9
|
-
@page = load_sample_into_model(CapybaraPageObject::Page)
|
10
|
-
end
|
11
|
-
|
12
|
-
should "page title" do
|
13
|
-
assert_equal 'Hello World', @page.title
|
14
|
-
end
|
15
|
-
|
16
|
-
should "tables" do
|
17
|
-
tables = @page.tables
|
18
|
-
assert_equal CapybaraPageObject::Table, tables[0].class
|
19
|
-
assert_equal CapybaraPageObject::Table, tables[0].class
|
20
|
-
end
|
21
|
-
|
22
|
-
should "tables by id" do
|
23
|
-
tables = @page.tables(:by => 'id')
|
24
|
-
assert_equal CapybaraPageObject::Table, tables['table_1'].class
|
25
|
-
assert_equal CapybaraPageObject::Table, tables['table_2'].class
|
26
|
-
end
|
27
|
-
|
28
|
-
should "forms" do
|
29
|
-
assert_equal ['form_1', 'form_2'], @page.forms(:keys => 'id')
|
30
|
-
end
|
31
|
-
|
32
|
-
should "meta_description" do
|
33
|
-
assert_equal "meta description", @page.meta_description
|
34
|
-
end
|
35
|
-
|
36
|
-
should "meta_keywords" do
|
37
|
-
assert_equal ["meta keyword 1", "meta keyword 2"], @page.meta_keywords
|
38
|
-
end
|
39
|
-
|
40
|
-
should "return the elements as a hash" do
|
41
|
-
assert_same_elements ['table_1', 'table_2'], @page.tables(:keys => 'id')
|
42
|
-
assert_same_elements ['table_1_class', 'table_2_class'], @page.tables(:keys => 'class')
|
43
|
-
end
|
44
|
-
|
45
|
-
should "data" do
|
46
|
-
h = {'foo' => 'a', 'bar' => 'b', 'cat' => ''}
|
47
|
-
assert_equal h, @page.find('#data').data
|
48
|
-
end
|
49
|
-
|
50
|
-
context "#path" do
|
51
|
-
should "raise exception if path not defined" do
|
52
|
-
assert_raise CapybaraPageObject::MissingPath do
|
53
|
-
@page.path
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
end
|
data/test/test_table.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
require 'capybara'
|
3
|
-
|
4
|
-
class TestTable< Test::Unit::TestCase
|
5
|
-
context "" do
|
6
|
-
setup do
|
7
|
-
@table = load_sample_into_model(CapybaraPageObject::Table)
|
8
|
-
end
|
9
|
-
|
10
|
-
should "rows" do
|
11
|
-
assert_same_elements ['table_1_tr_1', 'table_1_tr_2'], @table.rows(:keys => 'id')
|
12
|
-
end
|
13
|
-
|
14
|
-
should "headers" do
|
15
|
-
assert_same_elements ["table_1_th_1", "table_1_th_2"], @table.headers(:keys => 'id')
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|