capypage 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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