capypage 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46363dd20d43fc03a8ba0e523e70cb84a5af21a3
4
- data.tar.gz: 51b6937aa10d76cd748e81ff7b08d8c8f7746d3a
3
+ metadata.gz: e17d0dec80b73008960e7db25880188e4d49ac34
4
+ data.tar.gz: 47d86693674305ec5141d0dbad476a4dda04d0a7
5
5
  SHA512:
6
- metadata.gz: 79af6bae101b39e3e1abe840876be9eafd12d4215b7869a49a6210614da15f51c75b4ce64a979978853519236ff95f8a50b4c23307465fd2e53b69395c8d87b1
7
- data.tar.gz: 2e359a3a42e090a0b40b0f5a0dd6415468a380a533a5c682c0b773d851e086060ae633f826650cd1daf13a11d2746452ed89664f85695080b3112545dcf33764
6
+ metadata.gz: 98a96b1c0cb5b1fdb9f8668aad19641d22abe0201d59c90a80f05e1601de8ac245ed52d0c436ec8b7ddd4c139cb07dab815507f8442603c467d5ead739a50d3d
7
+ data.tar.gz: 2d3029f02d2e58f5ea513be0f9a06740fc4fcfb118e4c5f905890fc14f87f9d22797ae217ef67a6d1f4d6e372319347fbbf352782e66decf5a9fa812a2a891c3
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --tty --color
2
+ --format progress
data/Rakefile CHANGED
@@ -1 +1,6 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/capypage.gemspec CHANGED
@@ -21,5 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'activesupport', '~> 3.0.0'
22
22
 
23
23
  spec.add_development_dependency 'bundler', '~> 1.3'
24
+ spec.add_development_dependency 'rspec'
24
25
  spec.add_development_dependency 'rake'
25
26
  end
@@ -0,0 +1,7 @@
1
+ # Capypage Simple rspec example
2
+
3
+
4
+ ## How to run
5
+
6
+ gem 'capypage'
7
+ rspec
@@ -6,10 +6,10 @@ describe 'Simple example', :type => :feature do
6
6
 
7
7
  it 'should show capybara results' do
8
8
  search_page.load
9
- search_page.search "Capybara"
9
+ search_page.search 'Capybara'
10
10
 
11
- capybara_result = search_results_page.results.find_by_text "jnicklas"
12
- capybara_result.link[:href].should == 'https://github.com/jnicklas/capybara'
13
- capybara_result.snippet.should have_text "Capybara helps you test web applications"
11
+ capybara_result = search_results_page.results.find_by_text 'jnicklas'
12
+ expect(capybara_result.link[:href]).to eq('https://github.com/jnicklas/capybara')
13
+ expect(capybara_result.snippet).to have_text('Capybara helps you test web applications')
14
14
  end
15
15
  end
@@ -5,9 +5,6 @@ module Capypage
5
5
  class Element
6
6
  attr_accessor :selector, :prefix, :finder_options, :base_element
7
7
 
8
- delegate :click, :set, :text, :all, :find, :[], :native, :disabled?, :selected?, :has_text?, :has_no_text?, :checked?, :has_selector?,
9
- :to => :capybara_element
10
-
11
8
  def initialize(selector, prefix = nil, options = {}, &block)
12
9
  options.reverse_merge! :match => :smart
13
10
  @selector = selector
@@ -43,5 +40,12 @@ module Capypage
43
40
  def element_selector
44
41
  [prefix, selector].compact.join(" ")
45
42
  end
43
+
44
+ def self.capybara_element_methods
45
+ Capybara::Node::Element.instance_methods - Object.methods
46
+ end
47
+
48
+ delegate *capybara_element_methods,
49
+ :to => :capybara_element
46
50
  end
47
51
  end
@@ -1,3 +1,3 @@
1
1
  module Capypage
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/capypage.rb CHANGED
@@ -4,9 +4,8 @@ Bundler.require
4
4
 
5
5
  require 'capybara'
6
6
 
7
- require "capypage/version"
8
-
9
- require "capypage/page"
10
- require "capypage/element"
11
- require "capypage/elements"
12
- require "capypage/section"
7
+ require 'capypage/version'
8
+ require 'capypage/page'
9
+ require 'capypage/element'
10
+ require 'capypage/elements'
11
+ require 'capypage/section'
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Capypage::Element do
4
+ let(:page) { SamplePage.new }
5
+
6
+ before { page.load }
7
+
8
+ it 'should delegate all capybara element methods' do
9
+ expect(page.header[:class]).to eq('span12')
10
+ expect(page.header).to have_text('Hello')
11
+ expect(page.header).to_not have_text('Foo')
12
+ end
13
+
14
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Capypage::Elements do
4
+ let(:page) { SamplePage.new }
5
+ let(:elements) { page.list }
6
+ before { page.load }
7
+
8
+ it 'should find the collection of elements matching' do
9
+ expect(elements.size).to eq(3)
10
+ end
11
+
12
+ describe '#find_by_text' do
13
+ it 'should find the element with text within the collection' do
14
+ element = elements.find_by_text('Title 1')
15
+ expect(element.details.text).to eq('Details 1')
16
+ end
17
+ end
18
+
19
+ describe 'delegation of capybara methods to the collection' do
20
+ xit 'should delegate has_text' do
21
+ expect(elements).to have_text('Title 1')
22
+ end
23
+ end
24
+
25
+ end
data/spec/page_spec.rb ADDED
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Capypage::Page do
4
+ let(:page) { SamplePage.new }
5
+ let(:current_session) { Capybara.current_session }
6
+
7
+ context 'page loading' do
8
+ it 'should load the page' do
9
+ current_session.should_receive(:visit).with(SamplePage.url)
10
+ page.load
11
+ end
12
+ end
13
+
14
+ describe 'dsl' do
15
+ before { page.load }
16
+
17
+ describe '.element' do
18
+ it 'should return the element matching the selector' do
19
+ expect(page.header.text).to eq('Hello World!')
20
+ end
21
+ end
22
+
23
+ describe '.elements' do
24
+ let(:elements) { page.list }
25
+
26
+ it 'should return the size collection' do
27
+ expect(elements.size).to eq(3)
28
+ end
29
+
30
+ it 'should return the element in the collection and its details' do
31
+ expect(elements.find_by_index(0).title.text).to eq('Title 1')
32
+ end
33
+
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,28 @@
1
+ <!doctype html>
2
+ <html lang="en-US">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title></title>
6
+ </head>
7
+ <body>
8
+ <header class="span12">
9
+ Hello World!
10
+ </header>
11
+ <div id="content">
12
+ <ul class="list">
13
+ <li>
14
+ <div class="title">Title 1</div>
15
+ <div class="details">Details 1</div>
16
+ </li>
17
+ <li>
18
+ <div class="title">Title 2</div>
19
+ <div class="details">Details 2</div>
20
+ </li>
21
+ <li>
22
+ <div class="title">Title 3</div>
23
+ <div class="details">Details 3</div>
24
+ </li>
25
+ </ul>
26
+ </div>
27
+ </body>
28
+ </html>
@@ -0,0 +1,17 @@
1
+ require 'capypage'
2
+ require 'capybara/rspec'
3
+
4
+ Capybara.app = lambda { |_|
5
+ [200, { 'Content-Type' => 'application/html' }, File.read(File.join(File.dirname(__FILE__), 'sample_page.html'))]
6
+ }
7
+
8
+ class SamplePage < Capypage::Page
9
+ set_url '/'
10
+
11
+ element :header, 'header'
12
+ elements :list, 'ul.list li' do |row|
13
+ row.element :title, '.title'
14
+ row.element :details, '.details'
15
+ end
16
+
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capypage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Selvakumar Natesan
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-09-17 00:00:00.000000000 Z
13
+ date: 2013-09-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: capybara
@@ -54,6 +54,20 @@ dependencies:
54
54
  - - ~>
55
55
  - !ruby/object:Gem::Version
56
56
  version: '1.3'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rspec
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: rake
59
73
  requirement: !ruby/object:Gem::Requirement
@@ -76,12 +90,14 @@ extensions: []
76
90
  extra_rdoc_files: []
77
91
  files:
78
92
  - .gitignore
93
+ - .rspec
79
94
  - Gemfile
80
95
  - LICENSE.txt
81
96
  - README.md
82
97
  - Rakefile
83
98
  - capypage.gemspec
84
99
  - examples/simple/Gemfile
100
+ - examples/simple/README.md
85
101
  - examples/simple/spec/simple_spec.rb
86
102
  - examples/simple/spec/spec_helper.rb
87
103
  - lib/capypage.rb
@@ -90,6 +106,11 @@ files:
90
106
  - lib/capypage/page.rb
91
107
  - lib/capypage/section.rb
92
108
  - lib/capypage/version.rb
109
+ - spec/element_spec.rb
110
+ - spec/elements_spec.rb
111
+ - spec/page_spec.rb
112
+ - spec/sample_page.html
113
+ - spec/spec_helper.rb
93
114
  homepage: http://github.com/TWChennai/capypage
94
115
  licenses:
95
116
  - MIT
@@ -114,4 +135,9 @@ rubygems_version: 2.0.3
114
135
  signing_key:
115
136
  specification_version: 4
116
137
  summary: Page Object Model for Capybara
117
- test_files: []
138
+ test_files:
139
+ - spec/element_spec.rb
140
+ - spec/elements_spec.rb
141
+ - spec/page_spec.rb
142
+ - spec/sample_page.html
143
+ - spec/spec_helper.rb