selenium_page 0.0.1 → 0.1.0

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
  SHA256:
3
- metadata.gz: 12822a93e2f8ef08fe5a7358acf425c52ada3763c63893e77775d0a072e2ca86
4
- data.tar.gz: 5f1f3387f5c5f6b199c8111d2241d8d8d5bb406c554bc92f99cbfc59f1f21c12
3
+ metadata.gz: ab847fdc76365d1ffd7c7fb59a4088b87cfaa5b66745051e644905ef836be483
4
+ data.tar.gz: 459b3d3fea8f2ebcad887c082742100d994fc0cceb66e319bd986f28bb9057dd
5
5
  SHA512:
6
- metadata.gz: 31953427254309675f5c4830d2f44a0ad62820f4073c0dc4f44c0db263861ba9b33dbee6df26490576d64b9d72fcc99477e0afe20fc6ca742ed5617f717309b7
7
- data.tar.gz: a931e2bba655b8dda23b03b73c2d8d8dc10df993709ee16dfefed804f18adcb6a19b4bc50eefbb067bcac79dc2b7703444637d72993baaa0692f7a4d302ea765
6
+ metadata.gz: 7110393c893d10dd01cfeef086b9e8565ce20fbff1b16fc2d4eeee7474352317bb3420e6f7d630f2326dd0a631fac14422d44dea238596e73153f07093aa04a5
7
+ data.tar.gz: fb9cf871cf2c2f8f468208acb16eaff57734e40946bb8fe79811cb8361fb5d2fc00212b44ad268d32d39b4d8c2ebc9468b51c0814b90c1637a741c3697c39cb0
data/README.md CHANGED
@@ -1,2 +1,35 @@
1
- # selenium_page
2
- This gem uses https://github.com/SeleniumHQ/selenium/tree/master/rb to implement the Page Object Pattern
1
+ # Selenium Page
2
+
3
+ This gem implement the Page Object Pattern on the top of :
4
+
5
+ https://github.com/SeleniumHQ/selenium/tree/master/rb
6
+
7
+ ## Testing
8
+
9
+ https://github.com/rspec/rspec
10
+
11
+ ### Command
12
+
13
+ bundle exec rspec
14
+
15
+ ## Code Style
16
+
17
+ https://github.com/bbatsov/rubocop
18
+
19
+ ### Command
20
+
21
+ bundle exec rubocop
22
+
23
+ ## Documentation (todo ..)
24
+
25
+ https://github.com/lsegal/yard
26
+
27
+ ### Command
28
+
29
+ Start a local server for documentation on : http://localhost:8808
30
+
31
+ bundle exec yard server -r 'lib/**/*.rb'
32
+
33
+ Or simply compile the documentation :
34
+
35
+ bundle exec yard doc 'lib/**/*.rb'
data/lib/selenium_page.rb CHANGED
@@ -1,9 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # external
4
+ require 'selenium-webdriver'
5
+
1
6
  # SeleniumPage
2
- class SeleniumPage
3
- def self.hi(language = 'english')
4
- translator = Translator.new(language)
5
- translator.hi
7
+ module SeleniumPage
8
+ require_relative 'selenium_page/errors'
9
+ require_relative 'selenium_page/page'
10
+
11
+ def self.configure_scheme_and_authority(scheme_and_authority)
12
+ unless scheme_and_authority.is_a? String
13
+ raise Errors::UnexpectedSchemeAndAuthority
14
+ end
15
+
16
+ @scheme_and_authority = scheme_and_authority
6
17
  end
7
- end
8
18
 
9
- require 'selenium_page/translator'
19
+ def self.scheme_and_authority
20
+ @scheme_and_authority
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Errors
5
+ class Errors
6
+ # UnexpectedSchemeAndAuthority
7
+ class UnexpectedSchemeAndAuthority < StandardError
8
+ def message
9
+ "Only 'String' are accepted"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Page
5
+ class Page
6
+ require_relative 'page/errors'
7
+
8
+ def self.configure_url(url)
9
+ raise Errors::UnexpectedUrl unless url.is_a? String
10
+
11
+ @url = url
12
+ end
13
+
14
+ def self.url
15
+ @url
16
+ end
17
+
18
+ def initialize(driver)
19
+ raise Errors::WrongDriver unless driver.is_a? Selenium::WebDriver::Driver
20
+
21
+ @page = driver
22
+ end
23
+
24
+ def url
25
+ self.class.url
26
+ end
27
+
28
+ def get
29
+ raise Errors::UrlNotSet unless self.class.url
30
+
31
+ scheme_and_authority = SeleniumPage.scheme_and_authority
32
+ raise Errors::SchemeAndAuthorityNotSet unless scheme_and_authority
33
+
34
+ @page.get scheme_and_authority + self.class.url
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Page
5
+ class Page
6
+ # Errors
7
+ class Errors
8
+ # SchemeAndAuthorityNotSet
9
+ class SchemeAndAuthorityNotSet < StandardError
10
+ def message
11
+ 'Please set scheme_and_authority for SeleniumPage' \
12
+ " with '.configure_scheme_and_authority'"
13
+ end
14
+ end
15
+
16
+ # UnexpectedUrl
17
+ class UnexpectedUrl < StandardError
18
+ def message
19
+ "Only 'String' are accepted as page_url parameter"
20
+ end
21
+ end
22
+
23
+ # UrlNotSet
24
+ class UrlNotSet < StandardError
25
+ def message
26
+ "Please set url for the page with '.set_url'"
27
+ end
28
+ end
29
+
30
+ # WrongDriver
31
+ class WrongDriver < StandardError
32
+ def message
33
+ "Only 'Selenium::WebDriver::Driver' are accepted as driver parameter"
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium_page
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Massimiliano De Vivo
@@ -9,8 +9,149 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-03-16 00:00:00.000000000 Z
12
- dependencies: []
13
- description: A page object pattern gem for Selenium Webdriver!
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: selenium-webdriver
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.8.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.8.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.8.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.8.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: chromedriver-helper
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 1.2.0
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.2.0
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.2.0
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.2.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: pry-byebug
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 3.5.0
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.5.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 3.5.0
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 3.5.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 3.7.0
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.7.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.7.0
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 3.7.0
93
+ - !ruby/object:Gem::Dependency
94
+ name: rubocop
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 0.53.0
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.53.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.53.0
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.53.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: simplecov
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: 0.16.0
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.16.0
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 0.16.0
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 0.16.0
133
+ - !ruby/object:Gem::Dependency
134
+ name: yard
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.9.0
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 0.9.0
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 0.9.0
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.0
153
+ description: This gems aims to simplify the organization of support files when using
154
+ the Selenium Webdriver gem directly
14
155
  email: maxtru2005@gmail.com
15
156
  executables: []
16
157
  extensions: []
@@ -19,8 +160,10 @@ files:
19
160
  - LICENSE.md
20
161
  - README.md
21
162
  - lib/selenium_page.rb
22
- - lib/selenium_page/translator.rb
23
- homepage: http://rubygems.org/gems/selenium_page
163
+ - lib/selenium_page/errors.rb
164
+ - lib/selenium_page/page.rb
165
+ - lib/selenium_page/page/errors.rb
166
+ homepage: https://github.com/mooikos/selenium_page
24
167
  licenses:
25
168
  - MIT
26
169
  metadata: {}
@@ -1,17 +0,0 @@
1
- module Translator
2
- # SeleniumPage::Translator
3
- class SeleniumPage
4
- def initialize(language)
5
- @language = language
6
- end
7
-
8
- def hi
9
- case @language
10
- when 'spanish'
11
- 'hola mundo'
12
- else
13
- 'hello world'
14
- end
15
- end
16
- end
17
- end