pageify 0.2.0 → 0.2.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: 9d21aa14b7f880ca329b8ca5062400711cd9b414
4
- data.tar.gz: f617f59a06c6f7dbf308d8c7276d2a0c2a9adc59
3
+ metadata.gz: 18eeae82100f700e3f08d519bc11a42ade282585
4
+ data.tar.gz: 386caa08d3518b489493605ab2b26b7753ea5ebe
5
5
  SHA512:
6
- metadata.gz: 3e5c75dfb031ef3dce726ed4bcfe35eb96ca75c300b59a381ba41c684f8fc675fb6f87de079d2b239b2b7a0162634df26594be30da54c4403a8d740fb85df1ac
7
- data.tar.gz: 3a7cb6709aa29dc03edcce762f5d724054abc7cb3d86f3b06b475af385aee3a092b980fa4abc98cf0f70d987a431aea9c66e5a0149f6a6ef54a5fa121df1bc76
6
+ metadata.gz: ae23a44f394b8d37fb7f4f0aa63c5fd533acc5938fa356bd34c73a7ca8de0e19c94f045e413458870e70f325bb0cf22478dd73ec7e492018d77ce6e72be2ca53
7
+ data.tar.gz: 5a7e3b701b86f9c6a09218d9f1a31ca8770d963fa6981d9b5544d2f08735ae1832be4e509a5cab576cc4973e28eb1801db31c1aeb9d0e59b43f3105b211ea229
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  #Pageify
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/paramadeep/pageify.png)](https://codeclimate.com/github/paramadeep/pageify) [![Dependency Status](https://gemnasium.com/paramadeep/pageify.svg)](https://gemnasium.com/paramadeep/pageify) [![Build Status](https://travis-ci.org/paramadeep/pageify.svg?branch=master)](https://travis-ci.org/paramadeep/pageify)
4
+
3
5
  Lets you define page objects for your UI tests, written in Ruby.
4
6
 
5
7
  ##Example
@@ -17,13 +19,26 @@ home_page: ".home"
17
19
  ```
18
20
  Test steps looks like this
19
21
  ```ruby
20
- fill_in home_page.login.user_name :with => "hi"
21
- fill_in home_page.login.password :with => "bla"
22
- click_on home_page.login.submit
22
+ home_page.login.user_name[].set "hi"
23
+ home_page.login.password[].set "bla"
24
+ home_page.login.submit[].click
25
+
26
+ home_page.profile_name[].should match_text "hi"
27
+ hoem_page.settings[].should be_visible
28
+ ```
23
29
 
24
- home_page.profile_name.should match_text "hi"
25
- hoem_pafe.settings.should be_visible
30
+ We will be able element whose locators are dynamic
31
+ ```yaml
32
+ products_page: ".products"
33
+ product: ".product[name='%s']"
34
+ details_row: ".row:nth-of-type(%s)"
35
+ cost: ".cost"
36
+ ```
37
+ ```ruby
38
+ products_page.product("candy").details_row(1).cost[].should have_text "Rs.10"
39
+ products_page.product("tyres").details_row(2).cost[].should have_text "Rs.20"
26
40
  ```
41
+
27
42
 
28
43
  ## Key benefits
29
44
 
@@ -39,8 +54,41 @@ gem 'pageify'
39
54
  ###Cucumber
40
55
  In env.rb
41
56
  ```ruby
57
+ require 'pageify'
58
+ require 'pageify/capybara'
42
59
  include Pageify
60
+
43
61
  pageify("features/pages")
44
62
  ```
45
63
  Place all the page defenitions under "features/pages"
46
64
 
65
+ ##Methods
66
+
67
+ ###Get Element '[]'
68
+ ```ruby
69
+ home_page.login.user_name[] #=> user_name text box
70
+ home_page.login.user_name[].set "hi" # set text box value
71
+ home_page.login.user_name[].should have_value "hi" # assert value
72
+ home_page.login.submit[].click
73
+ ```
74
+
75
+
76
+ ###Get Selector 'p'
77
+ At times we would need selector of the object
78
+ ```ruby
79
+ home_page.login.user_name.p #=> ".home div.login input.user"
80
+
81
+ #check element doesn't exist
82
+ page.should_not have_selector home_page.login.user_name.p
83
+
84
+ #using capybara actions
85
+ fill_in home_page.login.user_name.p, :with=> "hi"
86
+ click_on home_page.login.submit.p
87
+ ```
88
+
89
+ ###
90
+
91
+
92
+
93
+
94
+
data/lib/pageify.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  module Pageify
2
2
  require "pageify/string"
3
- require "pageify/element"
3
+ require "pageify/page_object"
4
4
 
5
5
  def pageify(base_dir)
6
6
  base_dir.chomp! '/'
7
7
  all_pages = []
8
- Dir["#{base_dir}/**/*.page"].each do |file|
8
+ Dir["#{base_dir}/**/*.yml"].each do |file|
9
9
  to_page_objects file
10
10
  end
11
11
  end
@@ -0,0 +1,20 @@
1
+ class PageObject
2
+ include Capybara::DSL
3
+
4
+ def f(*args)
5
+ page.find(self.p, *args)
6
+ end
7
+
8
+ def find(*args)
9
+ f(*args)
10
+ end
11
+
12
+ def all(*args)
13
+ page.all(self.p, *args)
14
+ end
15
+
16
+ def []
17
+ page.find(self.p)
18
+ end
19
+
20
+ end
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deepak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-29 00:00:00.000000000 Z
11
+ date: 2014-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -39,16 +39,17 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: Simplify page object definition for UI tests
42
- email: anandhadeepak@gmail.com
42
+ email:
43
43
  executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
47
  - README.md
48
48
  - lib/pageify.rb
49
- - lib/pageify/element.rb
49
+ - lib/pageify/capybara.rb
50
+ - lib/pageify/page_object.rb
50
51
  - lib/pageify/string.rb
51
- - spec/pages/sample.page
52
+ - spec/pages/sample_page.yml
52
53
  - spec/sample_spec.rb
53
54
  - spec/spec_helper.rb
54
55
  homepage: https://github.com/paramadeep/pageify
@@ -76,6 +77,6 @@ signing_key:
76
77
  specification_version: 4
77
78
  summary: Simplify page object definition for UI tests
78
79
  test_files:
79
- - spec/pages/sample.page
80
+ - spec/pages/sample_page.yml
80
81
  - spec/spec_helper.rb
81
82
  - spec/sample_spec.rb