lazyman 0.1.13 → 0.1.14
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 +7 -0
- data/Gemfile +6 -11
- data/Gemfile.lock +62 -64
- data/README.md +6 -4
- data/VERSION +1 -1
- data/bin/lazyman +7 -7
- data/lazyman.gemspec +20 -35
- data/lib/lazyman.rb +0 -1
- data/lib/lazyman/ext/string.rb +27 -12
- data/lib/lazyman/generators/lazyman/.rspec +3 -3
- data/lib/lazyman/generators/lazyman/app/cases/baidu_and_google/google_example_spec.rb +16 -16
- data/lib/lazyman/generators/lazyman/app/cases/shared/login.rb +11 -11
- data/lib/lazyman/generators/lazyman/app/matchers/.empty_directory +5 -5
- data/lib/lazyman/generators/lazyman/app/pages/components/.empty_directory +5 -5
- data/lib/lazyman/generators/lazyman/app/pages/components/menu.rb +6 -6
- data/lib/lazyman/generators/lazyman/app/pages/google/google_page.rb.tt +16 -16
- data/lib/lazyman/generators/lazyman/app/pages/google/google_search_result_page.rb.tt +4 -4
- data/lib/lazyman/generators/lazyman/app/reports/.empty_directory +5 -5
- data/lib/lazyman/generators/lazyman/bin/console +7 -7
- data/lib/lazyman/generators/lazyman/bin/console.bat +6 -6
- data/lib/lazyman/generators/lazyman/bin/setup.rb.tt +12 -12
- data/lib/lazyman/generators/lazyman/config/lazyman_formatter.rb +24 -24
- data/spec/lazy_page_spec.rb +44 -44
- data/spec/string_spec.rb +10 -10
- metadata +49 -91
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: f880012f16584ac982e470140c32569f2cead0e0
|
|
4
|
+
data.tar.gz: 966738fd8d8a5b1e848559bb20c03a8cd8cd27f2
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 6d4399f007071a77df974ee26461751aac1500cc193811f6a0d084ae255e9f721080ff00a78df72cc9e944bb5933bbdc1fe92d10c7ecd3ad873be99d1611a94d
|
|
7
|
+
data.tar.gz: c09355d5ac32acb65ce618ce9be9014e6610523cde1621033730bef7d895553244da0102dcf5c7e80adfb20b921c4557791f5173cb4595a91e96974fd45dc59c
|
data/Gemfile
CHANGED
|
@@ -5,17 +5,12 @@ source "http://ruby.taobao.org"
|
|
|
5
5
|
|
|
6
6
|
# Add dependencies to develop your gem here.
|
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
|
8
|
-
gem "rspec"
|
|
9
|
-
gem "page-object"
|
|
10
|
-
gem "thor"
|
|
11
|
-
gem "active_support", "~> 3.0.0"
|
|
8
|
+
gem "rspec"
|
|
9
|
+
gem "page-object"
|
|
10
|
+
gem "thor"
|
|
12
11
|
|
|
13
12
|
group :development do
|
|
14
|
-
gem "rdoc"
|
|
15
|
-
gem "bundler"
|
|
16
|
-
gem "jeweler"
|
|
17
|
-
gem "rspec", ">= 2.13.0"
|
|
18
|
-
gem "page-object", ">= 0.8.6.1"
|
|
19
|
-
gem "thor", ">= 0.14.6"
|
|
20
|
-
gem "active_support", "~> 3.0.0"
|
|
13
|
+
gem "rdoc"
|
|
14
|
+
gem "bundler"
|
|
15
|
+
gem "jeweler"
|
|
21
16
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,64 +1,62 @@
|
|
|
1
|
-
GEM
|
|
2
|
-
remote: http://ruby.taobao.org/
|
|
3
|
-
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
rspec-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
rspec-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
rspec (>= 2.13.0)
|
|
64
|
-
thor (>= 0.14.6)
|
|
1
|
+
GEM
|
|
2
|
+
remote: http://ruby.taobao.org/
|
|
3
|
+
specs:
|
|
4
|
+
childprocess (0.3.9)
|
|
5
|
+
ffi (~> 1.0, >= 1.0.11)
|
|
6
|
+
data_magic (0.14)
|
|
7
|
+
faker (>= 1.1.2)
|
|
8
|
+
yml_reader (>= 0.2)
|
|
9
|
+
diff-lcs (1.2.4)
|
|
10
|
+
faker (1.1.2)
|
|
11
|
+
i18n (~> 0.5)
|
|
12
|
+
ffi (1.6.0)
|
|
13
|
+
ffi (1.6.0-x86-mingw32)
|
|
14
|
+
git (1.2.5)
|
|
15
|
+
i18n (0.6.4)
|
|
16
|
+
jeweler (1.8.4)
|
|
17
|
+
bundler (~> 1.0)
|
|
18
|
+
git (>= 1.2.5)
|
|
19
|
+
rake
|
|
20
|
+
rdoc
|
|
21
|
+
json (1.7.7)
|
|
22
|
+
multi_json (1.7.2)
|
|
23
|
+
page-object (0.8.6.1)
|
|
24
|
+
page_navigation (>= 0.7)
|
|
25
|
+
selenium-webdriver (>= 2.31.0)
|
|
26
|
+
watir-webdriver (>= 0.6.2)
|
|
27
|
+
page_navigation (0.7)
|
|
28
|
+
data_magic (>= 0.14)
|
|
29
|
+
rake (10.0.4)
|
|
30
|
+
rdoc (3.12.2)
|
|
31
|
+
json (~> 1.4)
|
|
32
|
+
rspec (2.14.1)
|
|
33
|
+
rspec-core (~> 2.14.0)
|
|
34
|
+
rspec-expectations (~> 2.14.0)
|
|
35
|
+
rspec-mocks (~> 2.14.0)
|
|
36
|
+
rspec-core (2.14.3)
|
|
37
|
+
rspec-expectations (2.14.0)
|
|
38
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
39
|
+
rspec-mocks (2.14.1)
|
|
40
|
+
rubyzip (0.9.9)
|
|
41
|
+
selenium-webdriver (2.31.0)
|
|
42
|
+
childprocess (>= 0.2.5)
|
|
43
|
+
multi_json (~> 1.0)
|
|
44
|
+
rubyzip
|
|
45
|
+
websocket (~> 1.0.4)
|
|
46
|
+
thor (0.14.6)
|
|
47
|
+
watir-webdriver (0.6.2)
|
|
48
|
+
selenium-webdriver (>= 2.18.0)
|
|
49
|
+
websocket (1.0.7)
|
|
50
|
+
yml_reader (0.2)
|
|
51
|
+
|
|
52
|
+
PLATFORMS
|
|
53
|
+
ruby
|
|
54
|
+
x86-mingw32
|
|
55
|
+
|
|
56
|
+
DEPENDENCIES
|
|
57
|
+
bundler
|
|
58
|
+
jeweler
|
|
59
|
+
page-object
|
|
60
|
+
rdoc
|
|
61
|
+
rspec
|
|
62
|
+
thor
|
data/README.md
CHANGED
|
@@ -15,10 +15,6 @@ Install lazyman from rubygems
|
|
|
15
15
|
|
|
16
16
|
Or clone from github, build the gem and install
|
|
17
17
|
|
|
18
|
-
If you have any issue when install lazyman, install the gems below:
|
|
19
|
-
|
|
20
|
-
gem install thor
|
|
21
|
-
|
|
22
18
|
|
|
23
19
|
Create a lazyman project
|
|
24
20
|
------------------------
|
|
@@ -77,6 +73,12 @@ Lazyman project has a clean and simple structure.
|
|
|
77
73
|
|
|
78
74
|
* app->matchers: defind your owner rspec matchers here.
|
|
79
75
|
|
|
76
|
+
How to fix rspec issue with GBK encoding
|
|
77
|
+
----------------------------------------
|
|
78
|
+
|
|
79
|
+
[Here](http://www.cnblogs.com/timsheng/p/3603679.html) is the solution.
|
|
80
|
+
|
|
81
|
+
|
|
80
82
|
|
|
81
83
|
Contributing to lazyman
|
|
82
84
|
-----------------------
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.14
|
data/bin/lazyman
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
lazyman_path = File.expand_path('../../lib', __FILE__)
|
|
4
|
-
#puts lazyman_path
|
|
5
|
-
$:.unshift(lazyman_path)
|
|
6
|
-
|
|
7
|
-
require 'lazyman/cli'
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
lazyman_path = File.expand_path('../../lib', __FILE__)
|
|
4
|
+
#puts lazyman_path
|
|
5
|
+
$:.unshift(lazyman_path)
|
|
6
|
+
|
|
7
|
+
require 'lazyman/cli'
|
data/lazyman.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "lazyman"
|
|
8
|
-
s.version = "0.1.
|
|
8
|
+
s.version = "0.1.14"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["easonhan"]
|
|
12
|
-
s.date = "
|
|
12
|
+
s.date = "2015-07-24"
|
|
13
13
|
s.description = "A test framework using watir-webdriver rspec and page-object"
|
|
14
14
|
s.email = "nbkhic@qq.com"
|
|
15
15
|
s.executables = ["lazyman"]
|
|
@@ -91,42 +91,27 @@ Gem::Specification.new do |s|
|
|
|
91
91
|
s.specification_version = 3
|
|
92
92
|
|
|
93
93
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
94
|
-
s.add_runtime_dependency(%q<rspec
|
|
95
|
-
s.add_runtime_dependency(%q<page-object
|
|
96
|
-
s.add_runtime_dependency(%q<thor
|
|
97
|
-
s.
|
|
98
|
-
s.add_development_dependency(%q<
|
|
99
|
-
s.add_development_dependency(%q<
|
|
100
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
101
|
-
s.add_development_dependency(%q<rspec>, [">= 2.13.0"])
|
|
102
|
-
s.add_development_dependency(%q<page-object>, [">= 0.8.6.1"])
|
|
103
|
-
s.add_development_dependency(%q<thor>, [">= 0.14.6"])
|
|
104
|
-
s.add_development_dependency(%q<active_support>, ["~> 3.0.0"])
|
|
94
|
+
s.add_runtime_dependency(%q<rspec>)
|
|
95
|
+
s.add_runtime_dependency(%q<page-object>)
|
|
96
|
+
s.add_runtime_dependency(%q<thor>)
|
|
97
|
+
s.add_development_dependency(%q<rdoc>)
|
|
98
|
+
s.add_development_dependency(%q<bundler>)
|
|
99
|
+
s.add_development_dependency(%q<jeweler>)
|
|
105
100
|
else
|
|
106
|
-
s.add_dependency(%q<rspec
|
|
107
|
-
s.add_dependency(%q<page-object
|
|
108
|
-
s.add_dependency(%q<thor
|
|
109
|
-
s.add_dependency(%q<
|
|
110
|
-
s.add_dependency(%q<
|
|
111
|
-
s.add_dependency(%q<
|
|
112
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
113
|
-
s.add_dependency(%q<rspec>, [">= 2.13.0"])
|
|
114
|
-
s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
|
|
115
|
-
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
|
116
|
-
s.add_dependency(%q<active_support>, ["~> 3.0.0"])
|
|
101
|
+
s.add_dependency(%q<rspec>)
|
|
102
|
+
s.add_dependency(%q<page-object>)
|
|
103
|
+
s.add_dependency(%q<thor>)
|
|
104
|
+
s.add_dependency(%q<rdoc>)
|
|
105
|
+
s.add_dependency(%q<bundler>)
|
|
106
|
+
s.add_dependency(%q<jeweler>)
|
|
117
107
|
end
|
|
118
108
|
else
|
|
119
|
-
s.add_dependency(%q<rspec
|
|
120
|
-
s.add_dependency(%q<page-object
|
|
121
|
-
s.add_dependency(%q<thor
|
|
122
|
-
s.add_dependency(%q<
|
|
123
|
-
s.add_dependency(%q<
|
|
124
|
-
s.add_dependency(%q<
|
|
125
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
126
|
-
s.add_dependency(%q<rspec>, [">= 2.13.0"])
|
|
127
|
-
s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
|
|
128
|
-
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
|
129
|
-
s.add_dependency(%q<active_support>, ["~> 3.0.0"])
|
|
109
|
+
s.add_dependency(%q<rspec>)
|
|
110
|
+
s.add_dependency(%q<page-object>)
|
|
111
|
+
s.add_dependency(%q<thor>)
|
|
112
|
+
s.add_dependency(%q<rdoc>)
|
|
113
|
+
s.add_dependency(%q<bundler>)
|
|
114
|
+
s.add_dependency(%q<jeweler>)
|
|
130
115
|
end
|
|
131
116
|
end
|
|
132
117
|
|
data/lib/lazyman.rb
CHANGED
data/lib/lazyman/ext/string.rb
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
class String
|
|
2
|
-
def lazy_to_hash
|
|
3
|
-
hash = { }
|
|
4
|
-
return hash if self.empty?
|
|
5
|
-
arr = self.split(',').map { |i| i.strip }
|
|
6
|
-
arr.each do |key|
|
|
7
|
-
hash[key.to_sym] = true
|
|
8
|
-
end #each
|
|
9
|
-
hash
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
class String
|
|
2
|
+
def lazy_to_hash
|
|
3
|
+
hash = { }
|
|
4
|
+
return hash if self.empty?
|
|
5
|
+
arr = self.split(',').map { |i| i.strip }
|
|
6
|
+
arr.each do |key|
|
|
7
|
+
hash[key.to_sym] = true
|
|
8
|
+
end #each
|
|
9
|
+
hash
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def underscore
|
|
13
|
+
return self unless self =~ /[A-Z-]|::/
|
|
14
|
+
word = self.to_s.gsub(/::/, '/')
|
|
15
|
+
word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)(#{acronym_regex})(?=\b|[^a-z])/) { "#{$1 && '_'}#{$2.downcase}" }
|
|
16
|
+
word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
|
|
17
|
+
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
|
18
|
+
word.tr!("-", "_")
|
|
19
|
+
word.downcase!
|
|
20
|
+
word
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def acronym_regex
|
|
24
|
+
/(?=a)b/
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
--default-path=./app/cases
|
|
2
|
-
--format Lazyman::LazymanFormatter
|
|
3
|
-
-r ./config/lazyman_formatter.rb
|
|
1
|
+
--default-path=./app/cases
|
|
2
|
+
--format Lazyman::LazymanFormatter
|
|
3
|
+
-r ./config/lazyman_formatter.rb
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#encoding: utf-8
|
|
2
|
-
require File.expand_path 'app/cases/spec_helper'
|
|
3
|
-
|
|
4
|
-
describe 'Google example show you how to use lazyman', :google do
|
|
5
|
-
|
|
6
|
-
before :all do
|
|
7
|
-
@keyword = 'watir-webdriver'
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
it 'should have correct search result' do
|
|
11
|
-
google_page = $navi.goto_google_page
|
|
12
|
-
result_page = google_page.search_for @keyword
|
|
13
|
-
result_page.first_result.should eq 'Watir WebDriver | the most elegant way to use webdriver with ruby'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
end
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
require File.expand_path 'app/cases/spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'Google example show you how to use lazyman', :google do
|
|
5
|
+
|
|
6
|
+
before :all do
|
|
7
|
+
@keyword = 'watir-webdriver'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 'should have correct search result' do
|
|
11
|
+
google_page = $navi.goto_google_page
|
|
12
|
+
result_page = google_page.search_for @keyword
|
|
13
|
+
result_page.first_result.should eq 'Watir WebDriver | the most elegant way to use webdriver with ruby'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
shared_examples 'login' do
|
|
2
|
-
it 'should login' do
|
|
3
|
-
data = test_data('login_user')
|
|
4
|
-
user = data['demo']['name']
|
|
5
|
-
password = data['demo']['password']
|
|
6
|
-
|
|
7
|
-
login_page = $navi.goto_login_page
|
|
8
|
-
my_view_page = login_page.login user, password
|
|
9
|
-
my_view_page.report_issue?.should be_true
|
|
10
|
-
end
|
|
11
|
-
end
|
|
1
|
+
shared_examples 'login' do
|
|
2
|
+
it 'should login' do
|
|
3
|
+
data = test_data('login_user')
|
|
4
|
+
user = data['demo']['name']
|
|
5
|
+
password = data['demo']['password']
|
|
6
|
+
|
|
7
|
+
login_page = $navi.goto_login_page
|
|
8
|
+
my_view_page = login_page.login user, password
|
|
9
|
+
my_view_page.report_issue?.should be_true
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
lib/**/*.rb
|
|
2
|
-
-
|
|
3
|
-
README.md
|
|
4
|
-
License.txt
|
|
5
|
-
Changelog.md
|
|
1
|
+
lib/**/*.rb
|
|
2
|
+
-
|
|
3
|
+
README.md
|
|
4
|
+
License.txt
|
|
5
|
+
Changelog.md
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
lib/**/*.rb
|
|
2
|
-
-
|
|
3
|
-
README.md
|
|
4
|
-
License.txt
|
|
5
|
-
Changelog.md
|
|
1
|
+
lib/**/*.rb
|
|
2
|
+
-
|
|
3
|
+
README.md
|
|
4
|
+
License.txt
|
|
5
|
+
Changelog.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
module Menu
|
|
2
|
-
include PageObject
|
|
3
|
-
link 'main', text: 'Main'
|
|
4
|
-
link 'logout', text: 'Logout'
|
|
5
|
-
link 'report_issue', text: 'Report Issue'
|
|
6
|
-
end
|
|
1
|
+
module Menu
|
|
2
|
+
include PageObject
|
|
3
|
+
link 'main', text: 'Main'
|
|
4
|
+
link 'logout', text: 'Logout'
|
|
5
|
+
link 'report_issue', text: 'Report Issue'
|
|
6
|
+
end
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#encoding: utf-8
|
|
2
|
-
class GooglePage < <%= app_name.camelize%>Page
|
|
3
|
-
page_url 'www.google.com.hk'
|
|
4
|
-
|
|
5
|
-
text_field 'keyword', name: 'q'
|
|
6
|
-
button 'search', name: 'btnK'
|
|
7
|
-
|
|
8
|
-
def search_for kw
|
|
9
|
-
self.keyword = kw
|
|
10
|
-
self.keyword_element.send_keys :return
|
|
11
|
-
# example show you how to use wait_until_present
|
|
12
|
-
@browser.table(id: 'nav').wait_until_present
|
|
13
|
-
turn_to GoogleSearchResultPage
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
end
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
class GooglePage < <%= app_name.camelize%>Page
|
|
3
|
+
page_url 'www.google.com.hk'
|
|
4
|
+
|
|
5
|
+
text_field 'keyword', name: 'q'
|
|
6
|
+
button 'search', name: 'btnK'
|
|
7
|
+
|
|
8
|
+
def search_for kw
|
|
9
|
+
self.keyword = kw
|
|
10
|
+
self.keyword_element.send_keys :return
|
|
11
|
+
# example show you how to use wait_until_present
|
|
12
|
+
@browser.table(id: 'nav').wait_until_present
|
|
13
|
+
turn_to GoogleSearchResultPage
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#encoding: utf-8
|
|
2
|
-
class GoogleSearchResultPage < <%= app_name.camelize%>Page
|
|
3
|
-
h3 'first_result', index: 0
|
|
4
|
-
end
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
class GoogleSearchResultPage < <%= app_name.camelize%>Page
|
|
3
|
+
h3 'first_result', index: 0
|
|
4
|
+
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
lib/**/*.rb
|
|
2
|
-
-
|
|
3
|
-
README.md
|
|
4
|
-
License.txt
|
|
5
|
-
Changelog.md
|
|
1
|
+
lib/**/*.rb
|
|
2
|
+
-
|
|
3
|
+
README.md
|
|
4
|
+
License.txt
|
|
5
|
+
Changelog.md
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
spec_helper = File.expand_path(File.join('.', 'app', 'cases', 'spec_helper.rb'))
|
|
4
|
-
|
|
5
|
-
setup = File.join(File.dirname(__FILE__), 'setup.rb')
|
|
6
|
-
|
|
7
|
-
exec "irb -r rspec -r #{spec_helper} -r #{setup} -r irb/completion --simple-prompt --readline"
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
spec_helper = File.expand_path(File.join('.', 'app', 'cases', 'spec_helper.rb'))
|
|
4
|
+
|
|
5
|
+
setup = File.join(File.dirname(__FILE__), 'setup.rb')
|
|
6
|
+
|
|
7
|
+
exec "irb -r rspec -r #{spec_helper} -r #{setup} -r irb/completion --simple-prompt --readline"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@ECHO OFF
|
|
2
|
-
IF NOT "%~f0" == "~f0" GOTO :WinNT
|
|
3
|
-
@"ruby.exe" "" %1 %2 %3 %4 %5 %6 %7 %8 %9
|
|
4
|
-
GOTO :EOF
|
|
5
|
-
:WinNT
|
|
6
|
-
@"ruby.exe" "%~dpn0" %*
|
|
1
|
+
@ECHO OFF
|
|
2
|
+
IF NOT "%~f0" == "~f0" GOTO :WinNT
|
|
3
|
+
@"ruby.exe" "" %1 %2 %3 %4 %5 %6 %7 %8 %9
|
|
4
|
+
GOTO :EOF
|
|
5
|
+
:WinNT
|
|
6
|
+
@"ruby.exe" "%~dpn0" %*
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
def test_data file
|
|
2
|
-
content = ''
|
|
3
|
-
file_path = File.expand_path(File.join('.', 'app', 'test_data', "#{file}.yml"))
|
|
4
|
-
raise "Can not find #{file}.yml" unless File.exists?(file_path)
|
|
5
|
-
File.open(file_path, 'r') do |handle|
|
|
6
|
-
content = handle.read
|
|
7
|
-
end
|
|
8
|
-
Psych.load ERB.new(content).result(binding)
|
|
9
|
-
end
|
|
10
|
-
<% require 'active_support/all' %>
|
|
11
|
-
$navi = <%= app_name.camelize %>Navigator.new $config
|
|
12
|
-
|
|
1
|
+
def test_data file
|
|
2
|
+
content = ''
|
|
3
|
+
file_path = File.expand_path(File.join('.', 'app', 'test_data', "#{file}.yml"))
|
|
4
|
+
raise "Can not find #{file}.yml" unless File.exists?(file_path)
|
|
5
|
+
File.open(file_path, 'r') do |handle|
|
|
6
|
+
content = handle.read
|
|
7
|
+
end
|
|
8
|
+
Psych.load ERB.new(content).result(binding)
|
|
9
|
+
end
|
|
10
|
+
<% require 'active_support/all' %>
|
|
11
|
+
$navi = <%= app_name.camelize %>Navigator.new $config
|
|
12
|
+
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
require 'erb'
|
|
2
|
-
require 'rspec/core/formatters/html_formatter'
|
|
3
|
-
|
|
4
|
-
module Lazyman
|
|
5
|
-
class LazymanFormatter < ::RSpec::Core::Formatters::HtmlFormatter
|
|
6
|
-
def initialize(output)
|
|
7
|
-
output = File.new(File.expand_path(File.join('.', 'app', 'reports', "#{Time.now.strftime("%Y%m%d_%H%M%S")}.html")), 'w')
|
|
8
|
-
super(output)
|
|
9
|
-
@printer.class.send(:define_method, 'puts') do |what|
|
|
10
|
-
@output.puts what
|
|
11
|
-
end #define_method
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def example_failed(example)
|
|
15
|
-
super(example)
|
|
16
|
-
if $navi
|
|
17
|
-
failed_url = $navi.url rescue $navi.current_url
|
|
18
|
-
@printer.puts "<a target=\"_blank\" href=\"#{failed_url}\">failed url is [#{failed_url}]</a>"
|
|
19
|
-
@printer.puts '<br />'
|
|
20
|
-
@printer.flush
|
|
21
|
-
end #if
|
|
22
|
-
end
|
|
23
|
-
end #LazymanFormatter
|
|
24
|
-
end #Lazyman
|
|
1
|
+
require 'erb'
|
|
2
|
+
require 'rspec/core/formatters/html_formatter'
|
|
3
|
+
|
|
4
|
+
module Lazyman
|
|
5
|
+
class LazymanFormatter < ::RSpec::Core::Formatters::HtmlFormatter
|
|
6
|
+
def initialize(output)
|
|
7
|
+
output = File.new(File.expand_path(File.join('.', 'app', 'reports', "#{Time.now.strftime("%Y%m%d_%H%M%S")}.html")), 'w')
|
|
8
|
+
super(output)
|
|
9
|
+
@printer.class.send(:define_method, 'puts') do |what|
|
|
10
|
+
@output.puts what
|
|
11
|
+
end #define_method
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def example_failed(example)
|
|
15
|
+
super(example)
|
|
16
|
+
if $navi
|
|
17
|
+
failed_url = $navi.url rescue $navi.current_url
|
|
18
|
+
@printer.puts "<a target=\"_blank\" href=\"#{failed_url}\">failed url is [#{failed_url}]</a>"
|
|
19
|
+
@printer.puts '<br />'
|
|
20
|
+
@printer.flush
|
|
21
|
+
end #if
|
|
22
|
+
end
|
|
23
|
+
end #LazymanFormatter
|
|
24
|
+
end #Lazyman
|
data/spec/lazy_page_spec.rb
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Lazyman::Page do
|
|
4
|
-
before :all do
|
|
5
|
-
@app_name = 'test'
|
|
6
|
-
Lazyman::Initializer.new File.dirname(__FILE__), @app_name
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
before(:each) do
|
|
10
|
-
@browser = mock_watir_browser
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def mock_watir_browser
|
|
14
|
-
watir_browser = double('watir')
|
|
15
|
-
watir_browser.stub
|
|
16
|
-
watir_browser.stub
|
|
17
|
-
watir_browser
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
it 'method missing' do
|
|
21
|
-
@browser.stub :close
|
|
22
|
-
@browser.should_receive :close
|
|
23
|
-
Lazyman::Page.new(@browser).close
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it 'should turn to page' do
|
|
27
|
-
p = Lazyman::Page.new(@browser).turn_to TestPage
|
|
28
|
-
p.is_a?(TestPage).should be_true
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it 'should data driven with hash' do
|
|
32
|
-
btn = double();
|
|
33
|
-
hash = {:one => 'click', :two => 'ok'}
|
|
34
|
-
|
|
35
|
-
p = TestPage.new(@browser)
|
|
36
|
-
p.stub(:one).and_return(btn)
|
|
37
|
-
p.stub(:two=)
|
|
38
|
-
btn.should_receive(:click)
|
|
39
|
-
p.should_receive(:one)
|
|
40
|
-
p.should_receive(:two=).with('ok')
|
|
41
|
-
p.data_driven(hash)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
end
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Lazyman::Page do
|
|
4
|
+
before :all do
|
|
5
|
+
@app_name = 'test'
|
|
6
|
+
Lazyman::Initializer.new File.dirname(__FILE__), @app_name
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
before(:each) do
|
|
10
|
+
@browser = mock_watir_browser
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def mock_watir_browser
|
|
14
|
+
watir_browser = double('watir')
|
|
15
|
+
watir_browser.stub(:is_a?).with(anything()).and_return(false)
|
|
16
|
+
watir_browser.stub(:is_a?).with(Watir::Browser).and_return(true)
|
|
17
|
+
watir_browser
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'method missing' do
|
|
21
|
+
@browser.stub :close
|
|
22
|
+
@browser.should_receive :close
|
|
23
|
+
Lazyman::Page.new(@browser).close
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'should turn to page' do
|
|
27
|
+
p = Lazyman::Page.new(@browser).turn_to TestPage
|
|
28
|
+
p.is_a?(TestPage).should be_true
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'should data driven with hash' do
|
|
32
|
+
btn = double();
|
|
33
|
+
hash = {:one => 'click', :two => 'ok'}
|
|
34
|
+
|
|
35
|
+
p = TestPage.new(@browser)
|
|
36
|
+
p.stub(:one).and_return(btn)
|
|
37
|
+
p.stub(:two=)
|
|
38
|
+
btn.should_receive(:click)
|
|
39
|
+
p.should_receive(:one)
|
|
40
|
+
p.should_receive(:two=).with('ok')
|
|
41
|
+
p.data_driven(hash)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
data/spec/string_spec.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe String do
|
|
4
|
-
|
|
5
|
-
it 'lazy_to_hash should have correct behavor' do
|
|
6
|
-
str = 'a, b, c, d'
|
|
7
|
-
str.lazy_to_hash.should eq({a: true, b: true, c: true, d: true})
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
end
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe String do
|
|
4
|
+
|
|
5
|
+
it 'lazy_to_hash should have correct behavor' do
|
|
6
|
+
str = 'a, b, c, d'
|
|
7
|
+
str.lazy_to_hash.should eq({a: true, b: true, c: true, d: true})
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
end
|
metadata
CHANGED
|
@@ -1,137 +1,99 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lazyman
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.1.14
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- easonhan
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2015-07-24 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: rspec
|
|
16
|
-
requirement:
|
|
17
|
-
none: false
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - ">="
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
|
-
version:
|
|
19
|
+
version: '0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
25
27
|
- !ruby/object:Gem::Dependency
|
|
26
28
|
name: page-object
|
|
27
|
-
requirement:
|
|
28
|
-
none: false
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
30
|
requirements:
|
|
30
|
-
- -
|
|
31
|
+
- - ">="
|
|
31
32
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0
|
|
33
|
+
version: '0'
|
|
33
34
|
type: :runtime
|
|
34
35
|
prerelease: false
|
|
35
|
-
version_requirements:
|
|
36
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
-
name: thor
|
|
38
|
-
requirement: &27469524 !ruby/object:Gem::Requirement
|
|
39
|
-
none: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
40
37
|
requirements:
|
|
41
|
-
- -
|
|
38
|
+
- - ">="
|
|
42
39
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: 0
|
|
44
|
-
type: :runtime
|
|
45
|
-
prerelease: false
|
|
46
|
-
version_requirements: *27469524
|
|
40
|
+
version: '0'
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
49
|
-
requirement:
|
|
50
|
-
none: false
|
|
42
|
+
name: thor
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
51
44
|
requirements:
|
|
52
|
-
- -
|
|
45
|
+
- - ">="
|
|
53
46
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
47
|
+
version: '0'
|
|
55
48
|
type: :runtime
|
|
56
49
|
prerelease: false
|
|
57
|
-
version_requirements:
|
|
58
|
-
- !ruby/object:Gem::Dependency
|
|
59
|
-
name: rdoc
|
|
60
|
-
requirement: &27468624 !ruby/object:Gem::Requirement
|
|
61
|
-
none: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
62
51
|
requirements:
|
|
63
|
-
- -
|
|
52
|
+
- - ">="
|
|
64
53
|
- !ruby/object:Gem::Version
|
|
65
|
-
version: '
|
|
66
|
-
type: :development
|
|
67
|
-
prerelease: false
|
|
68
|
-
version_requirements: *27468624
|
|
54
|
+
version: '0'
|
|
69
55
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
71
|
-
requirement:
|
|
72
|
-
none: false
|
|
56
|
+
name: rdoc
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
58
|
requirements:
|
|
74
|
-
- -
|
|
59
|
+
- - ">="
|
|
75
60
|
- !ruby/object:Gem::Version
|
|
76
|
-
version:
|
|
61
|
+
version: '0'
|
|
77
62
|
type: :development
|
|
78
63
|
prerelease: false
|
|
79
|
-
version_requirements:
|
|
80
|
-
- !ruby/object:Gem::Dependency
|
|
81
|
-
name: jeweler
|
|
82
|
-
requirement: &27467676 !ruby/object:Gem::Requirement
|
|
83
|
-
none: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
84
65
|
requirements:
|
|
85
|
-
- -
|
|
66
|
+
- - ">="
|
|
86
67
|
- !ruby/object:Gem::Version
|
|
87
|
-
version:
|
|
88
|
-
type: :development
|
|
89
|
-
prerelease: false
|
|
90
|
-
version_requirements: *27467676
|
|
68
|
+
version: '0'
|
|
91
69
|
- !ruby/object:Gem::Dependency
|
|
92
|
-
name:
|
|
93
|
-
requirement:
|
|
94
|
-
none: false
|
|
70
|
+
name: bundler
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
95
72
|
requirements:
|
|
96
|
-
- -
|
|
73
|
+
- - ">="
|
|
97
74
|
- !ruby/object:Gem::Version
|
|
98
|
-
version:
|
|
75
|
+
version: '0'
|
|
99
76
|
type: :development
|
|
100
77
|
prerelease: false
|
|
101
|
-
version_requirements:
|
|
102
|
-
- !ruby/object:Gem::Dependency
|
|
103
|
-
name: page-object
|
|
104
|
-
requirement: &27466800 !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
79
|
requirements:
|
|
107
|
-
- -
|
|
80
|
+
- - ">="
|
|
108
81
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 0
|
|
110
|
-
type: :development
|
|
111
|
-
prerelease: false
|
|
112
|
-
version_requirements: *27466800
|
|
82
|
+
version: '0'
|
|
113
83
|
- !ruby/object:Gem::Dependency
|
|
114
|
-
name:
|
|
115
|
-
requirement:
|
|
116
|
-
none: false
|
|
84
|
+
name: jeweler
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
117
86
|
requirements:
|
|
118
|
-
- -
|
|
87
|
+
- - ">="
|
|
119
88
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: 0
|
|
89
|
+
version: '0'
|
|
121
90
|
type: :development
|
|
122
91
|
prerelease: false
|
|
123
|
-
version_requirements:
|
|
124
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
-
name: active_support
|
|
126
|
-
requirement: &27465948 !ruby/object:Gem::Requirement
|
|
127
|
-
none: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
128
93
|
requirements:
|
|
129
|
-
- -
|
|
94
|
+
- - ">="
|
|
130
95
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: *27465948
|
|
96
|
+
version: '0'
|
|
135
97
|
description: A test framework using watir-webdriver rspec and page-object
|
|
136
98
|
email: nbkhic@qq.com
|
|
137
99
|
executables:
|
|
@@ -142,7 +104,7 @@ extra_rdoc_files:
|
|
|
142
104
|
- README.md
|
|
143
105
|
- README.rdoc
|
|
144
106
|
files:
|
|
145
|
-
- .document
|
|
107
|
+
- ".document"
|
|
146
108
|
- Gemfile
|
|
147
109
|
- Gemfile.lock
|
|
148
110
|
- LICENSE.txt
|
|
@@ -206,28 +168,24 @@ files:
|
|
|
206
168
|
homepage: https://github.com/easonhan007/lazyman
|
|
207
169
|
licenses:
|
|
208
170
|
- MIT
|
|
171
|
+
metadata: {}
|
|
209
172
|
post_install_message:
|
|
210
173
|
rdoc_options: []
|
|
211
174
|
require_paths:
|
|
212
175
|
- lib
|
|
213
176
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
214
|
-
none: false
|
|
215
177
|
requirements:
|
|
216
|
-
- -
|
|
178
|
+
- - ">="
|
|
217
179
|
- !ruby/object:Gem::Version
|
|
218
180
|
version: '0'
|
|
219
|
-
segments:
|
|
220
|
-
- 0
|
|
221
|
-
hash: 506620335
|
|
222
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
|
-
none: false
|
|
224
182
|
requirements:
|
|
225
|
-
- -
|
|
183
|
+
- - ">="
|
|
226
184
|
- !ruby/object:Gem::Version
|
|
227
185
|
version: '0'
|
|
228
186
|
requirements: []
|
|
229
187
|
rubyforge_project:
|
|
230
|
-
rubygems_version:
|
|
188
|
+
rubygems_version: 2.2.2
|
|
231
189
|
signing_key:
|
|
232
190
|
specification_version: 3
|
|
233
191
|
summary: A simple web automation test framework
|