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.
Files changed (50) hide show
  1. data/Gemfile +3 -1
  2. data/Gemfile.lock +15 -2
  3. data/Rakefile +27 -13
  4. data/VERSION +1 -1
  5. data/capybara-page-object.gemspec +55 -27
  6. data/lib/capybara-page-object.rb +6 -8
  7. data/lib/collections.rb +11 -0
  8. data/lib/element.rb +11 -0
  9. data/lib/element/anchor.rb +11 -0
  10. data/lib/element/form.rb +64 -0
  11. data/lib/element/form_field.rb +20 -0
  12. data/lib/element/image.rb +20 -0
  13. data/lib/element/input.rb +28 -0
  14. data/lib/element/list.rb +21 -0
  15. data/lib/element/listitem.rb +7 -0
  16. data/lib/element/meta.rb +16 -0
  17. data/lib/element/select.rb +16 -0
  18. data/lib/{table.rb → element/table.rb} +1 -3
  19. data/lib/element/textarea.rb +16 -0
  20. data/lib/{extractors → extractor}/common.rb +3 -11
  21. data/lib/{extractors → extractor}/page_level.rb +3 -13
  22. data/lib/html5_data.rb +14 -0
  23. data/lib/key_value.rb +11 -0
  24. data/lib/navigation.rb +16 -0
  25. data/lib/node.rb +76 -0
  26. data/spec/common_spec.rb +46 -0
  27. data/spec/element/anchor_spec.rb +15 -0
  28. data/spec/element/base_spec.rb +19 -0
  29. data/spec/element/form_field_spec.rb +28 -0
  30. data/spec/element/form_spec.rb +69 -0
  31. data/spec/element/image_spec.rb +30 -0
  32. data/spec/element/input_spec.rb +49 -0
  33. data/spec/element/list_spec.rb +47 -0
  34. data/spec/element/listitem_spec.rb +25 -0
  35. data/spec/element/meta_spec.rb +23 -0
  36. data/spec/element/select_spec.rb +36 -0
  37. data/spec/element/table_spec.rb +30 -0
  38. data/spec/element/textarea_spec.rb +19 -0
  39. data/{test/page.html → spec/fixtures/node.html} +0 -0
  40. data/{test → spec}/helper.rb +2 -11
  41. data/spec/node_spec.rb +45 -0
  42. metadata +120 -109
  43. data/lib/base.rb +0 -29
  44. data/lib/image.rb +0 -13
  45. data/lib/page.rb +0 -15
  46. data/test/image.html +0 -2
  47. data/test/table.html +0 -10
  48. data/test/test_image.rb +0 -20
  49. data/test/test_page.rb +0 -59
  50. 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
@@ -1,13 +0,0 @@
1
- require File.dirname(__FILE__) + '/base'
2
-
3
- module CapybaraPageObject
4
- class Image < CapybaraPageObject::Base
5
- def src
6
- source.find('img')[:src]
7
- end
8
-
9
- def alt
10
- source.find('img')[:alt].strip
11
- end
12
- end
13
- end
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
@@ -1,2 +0,0 @@
1
- <img src="image1.jpg" alt="image 1">
2
- <img src="image2.jpg" alt="image 2">
data/test/table.html DELETED
@@ -1,10 +0,0 @@
1
- <table id="table_1" class="table_1_class">
2
- <tr id="table_1_tr_1">
3
- <th id="table_1_th_1">TH1</th>
4
- <th id="table_1_th_2">TH2</th>
5
- </tr>
6
- <tr id="table_1_tr_2">
7
- <td id="table_1_td_1">TD1</td>
8
- <td id="table_1_td_2">TD2</td>
9
- </tr>
10
- </table>
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