whirlwind 0.1.2 → 0.1.3
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.
- data/History.txt +5 -0
- data/Manifest.txt +8 -0
- data/README.txt +12 -7
- data/Rakefile +2 -1
- data/bin/whirlwind +0 -0
- data/demo_test_site/public/javascripts/cyberconnect_helpers.js +0 -0
- data/lib/cucumber/formatter/cucumber.css +0 -0
- data/lib/cucumber/formatter/html_image.rb +2 -1
- data/lib/rspec.rb +6 -1
- data/lib/watir.rb +4 -3
- data/lib/whirlwind.rb +7 -3
- data/sites/google/conf/urls.yaml +2 -0
- data/sites/google/elements/google_common_elements.rb +11 -0
- data/sites/google/elements/google_elements.rb +24 -0
- data/sites/google/features/search.feature +8 -0
- data/sites/google/features/step_defn/google.rb +29 -0
- data/sites/google/flows/search_flows.rb +29 -0
- data/sites/google/flows/search_results_flows.rb +11 -0
- data/sites/google/results/.placeholder +0 -0
- metadata +96 -81
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -77,3 +77,11 @@ lib/watir.rb
|
|
77
77
|
lib/ordered_xml_markup.rb
|
78
78
|
lib/io.rb
|
79
79
|
images/.placeholder
|
80
|
+
sites/google/results/.placeholder
|
81
|
+
sites/google/conf/urls.yaml
|
82
|
+
sites/google/features/search.feature
|
83
|
+
sites/google/features/step_defn/google.rb
|
84
|
+
sites/google/elements/google_elements.rb
|
85
|
+
sites/google/elements/google_common_elements.rb
|
86
|
+
sites/google/flows/search_flows.rb
|
87
|
+
sites/google/flows/search_results_flows.rb
|
data/README.txt
CHANGED
@@ -61,14 +61,19 @@
|
|
61
61
|
Test results are stored under sites/<site_name>/results.
|
62
62
|
|
63
63
|
|
64
|
-
== REQUIREMENTS:
|
65
|
-
|
66
|
-
* Imagemagic with development headers so that the rmagick gem can be compiled.
|
67
|
-
|
68
64
|
== INSTALL:
|
69
|
-
|
70
|
-
*
|
71
|
-
|
65
|
+
* Ubuntu
|
66
|
+
* sudo apt-get install imagemagick libgraphicsmagick1-dev libmagic1 libmagickcore-dev libmagickwand-dev
|
67
|
+
* sudo apt-get install rmagick
|
68
|
+
* sudo gem install whirlwind
|
69
|
+
|
70
|
+
* Windows
|
71
|
+
* gem install win32screenshot
|
72
|
+
* gem install whirlwind
|
73
|
+
|
74
|
+
* OSX
|
75
|
+
* Install ImageMagick and development headers
|
76
|
+
* sudo gem install whirlwind
|
72
77
|
== LICENSE:
|
73
78
|
|
74
79
|
GPLv3: http://www.gnu.org/licenses/gpl.html
|
data/Rakefile
CHANGED
@@ -5,11 +5,12 @@ require 'hoe'
|
|
5
5
|
|
6
6
|
Hoe.spec 'whirlwind' do
|
7
7
|
developer('Cliff Cyphers', 'cliff.cyphers@gmail.com')
|
8
|
+
extra_deps << ['ffi', '1.0.9']
|
9
|
+
extra_deps << ['sinatra']
|
8
10
|
extra_deps << ['platform_helpers', '0.1.3']
|
9
11
|
extra_deps << ['cucumber', '1.1.0']
|
10
12
|
extra_deps << ['rspec', '2.7.0']
|
11
13
|
extra_deps << ['watir-webdriver', '0.3.5']
|
12
|
-
extra_deps << ['rmagick', '2.13.1']
|
13
14
|
extra_deps << ['wait_for', '0.1.1']
|
14
15
|
end
|
15
16
|
|
data/bin/whirlwind
CHANGED
File without changes
|
File without changes
|
File without changes
|
@@ -24,7 +24,8 @@ module Cucumber
|
|
24
24
|
else
|
25
25
|
=end
|
26
26
|
FileUtils.mkdir Dir.pwd + '/results' unless File.directory? Dir.pwd + '/results'
|
27
|
-
|
27
|
+
t = "#{Time.now}".gsub(':', '_')
|
28
|
+
html = Dir.pwd + "/results/test_run_#{t}.html"
|
28
29
|
# end
|
29
30
|
@io = ensure_io(html, 'html')
|
30
31
|
@step_mother = step_mother
|
data/lib/rspec.rb
CHANGED
@@ -7,7 +7,12 @@ module RSpec
|
|
7
7
|
file = "#{BASE}/images/#{Token.provide}.jpg"
|
8
8
|
FileUtils.mkdir File.dirname(file) unless File.directory?(File.dirname(file))
|
9
9
|
@__cucumber_step_mother.add_image(:src => file, :label => i)
|
10
|
-
|
10
|
+
|
11
|
+
if RUBY_PLATFORM =~ /win/i or RUBY_PLATFORM =~ /mingw/i
|
12
|
+
Watir::Screen.shot.write(file)
|
13
|
+
else
|
14
|
+
Watir::Screen.shot.resize(800, 600).write(file)
|
15
|
+
end
|
11
16
|
}
|
12
17
|
define_method('site_requires') {
|
13
18
|
Find.find(BASE + '/sites').each { |i|
|
data/lib/watir.rb
CHANGED
@@ -86,9 +86,10 @@ end
|
|
86
86
|
module Watir
|
87
87
|
module Screen
|
88
88
|
def self.shot
|
89
|
-
if RUBY_PLATFORM =~ /win/i
|
90
|
-
|
91
|
-
|
89
|
+
if RUBY_PLATFORM =~ /win/i or RUBY_PLATFORM =~ /mingw/i
|
90
|
+
Win32::Screenshot::Take.of(:foreground)
|
91
|
+
#width, height, bitmap = Win32::Screenshot.desktop
|
92
|
+
#Magick::ImageList.new.from_blob(bitmap)
|
92
93
|
else
|
93
94
|
Magick::Image.capture(silent=true, frame=false, descent=false,
|
94
95
|
screen=true, borders=false) { self.filename = 'root' }
|
data/lib/whirlwind.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
base = File.expand_path(File.dirname(__FILE__) + '/..')
|
2
2
|
|
3
|
-
require 'RMagick'
|
4
3
|
require 'platform_helpers'
|
5
4
|
require base + '/lib/cucumber'
|
6
5
|
require 'watir-webdriver'
|
@@ -10,7 +9,12 @@ require 'wait_for'
|
|
10
9
|
require base + '/lib/cucumber/formatter/html_image'
|
11
10
|
require 'rspec'
|
12
11
|
require 'find'
|
13
|
-
|
12
|
+
|
13
|
+
if RUBY_PLATFORM =~ /win/i or RUBY_PLATFORM =~ /mingw/i
|
14
|
+
require 'win32/screenshot'
|
15
|
+
else
|
16
|
+
require 'RMagick'
|
17
|
+
end
|
14
18
|
|
15
19
|
Before do |i|
|
16
20
|
load_fixtures
|
@@ -35,5 +39,5 @@ end
|
|
35
39
|
|
36
40
|
class Whirlwind
|
37
41
|
include RSpec::Core::DSL
|
38
|
-
VERSION = '0.1.
|
42
|
+
VERSION = '0.1.3'
|
39
43
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Google
|
2
|
+
module Elements
|
3
|
+
class Search
|
4
|
+
include RSpec::Core::DSL
|
5
|
+
attr_accessor :menu
|
6
|
+
def initialize
|
7
|
+
@menu = Google::Elements::MenuBar.new
|
8
|
+
define_me(:search_field) {@browser.text_field(:title, 'Search')}
|
9
|
+
define_me(:submit) {@browser.button(:name, 'btnK')}
|
10
|
+
end
|
11
|
+
end
|
12
|
+
class SearchResults
|
13
|
+
include RSpec::Core::DSL
|
14
|
+
attr_accessor :menu
|
15
|
+
def initialize
|
16
|
+
@menu = Google::Elements::MenuBar.new
|
17
|
+
define_me(:submit) {@browser.button(:name, 'btnG')}
|
18
|
+
define_me(:search_results) { @browser.div(:id => 'search') }
|
19
|
+
define_me(:current_page_search_results_array) { @browser.divs(:class => 'vsc') }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Feature: When a user enters a search term in google
|
2
|
+
results should be returned related to the term in question
|
3
|
+
|
4
|
+
Scenario: Basic Search
|
5
|
+
Given a user navigates to the home page
|
6
|
+
Then the user searches for bye bye blackbird
|
7
|
+
Then there shall be search results containing bye bye blackbird
|
8
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
base = File.expand_path(File.dirname(__FILE__) + '/../../../..')
|
2
|
+
require base + '/lib/whirlwind'
|
3
|
+
|
4
|
+
Given /a user navigates to the (.+) page/ do |page|
|
5
|
+
@google_searchpage.send(page)
|
6
|
+
end
|
7
|
+
|
8
|
+
Then /the user searches for (.+)/ do |term|
|
9
|
+
@google_searchpage.search(term)
|
10
|
+
end
|
11
|
+
|
12
|
+
Then /^there shall be search results containing (.+)$/ do |term|
|
13
|
+
# could simply search body's text
|
14
|
+
(@browser.text =~ /#{term}/i).should_not == nil
|
15
|
+
|
16
|
+
#or if you want to ensure it's found within a search result:
|
17
|
+
found=nil
|
18
|
+
@google_searchresultspage.elements.current_page_search_results_array.each { |result|
|
19
|
+
found = result.text =~ /#{term}/i
|
20
|
+
break if found
|
21
|
+
}
|
22
|
+
found.should_not == nil
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
=begin
|
27
|
+
Then /there shall be search results containing bye bye black bird/
|
28
|
+
end
|
29
|
+
=end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Google
|
2
|
+
class SearchPage
|
3
|
+
include RSpec::Core::DSL
|
4
|
+
attr_reader :elements
|
5
|
+
def initialize
|
6
|
+
@elements = Google::Elements::Search.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def home
|
10
|
+
@browser.goto(@test_data['google'][:urls][$environment][:home])
|
11
|
+
@elements.search_field.wait_until_present
|
12
|
+
screen_shot('Landed on Google Search Home Page')
|
13
|
+
end
|
14
|
+
|
15
|
+
def search(term)
|
16
|
+
home
|
17
|
+
@elements.search_field.set(term)
|
18
|
+
begin
|
19
|
+
@elements.submit.click
|
20
|
+
rescue Selenium::WebDriver::Error::ElementNotDisplayedError => e
|
21
|
+
@google_searchresultspage.elements.submit.click
|
22
|
+
end
|
23
|
+
wait_for(2) { @google_searchresultspage.elements.search_results.text != '' }
|
24
|
+
screen_shot("Search Results for #{term}")
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
File without changes
|
metadata
CHANGED
@@ -1,106 +1,115 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: whirlwind
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Cliff Cyphers
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
date: 2011-11-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: ffi
|
16
|
+
requirement: &80755730 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - =
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.0.9
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *80755730
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sinatra
|
27
|
+
requirement: &80755520 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
17
34
|
prerelease: false
|
18
|
-
|
35
|
+
version_requirements: *80755520
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: platform_helpers
|
38
|
+
requirement: &80755240 !ruby/object:Gem::Requirement
|
19
39
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - =
|
42
|
+
- !ruby/object:Gem::Version
|
23
43
|
version: 0.1.3
|
24
44
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: cucumber
|
28
45
|
prerelease: false
|
29
|
-
|
46
|
+
version_requirements: *80755240
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: cucumber
|
49
|
+
requirement: &80755000 !ruby/object:Gem::Requirement
|
30
50
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
51
|
+
requirements:
|
52
|
+
- - =
|
53
|
+
- !ruby/object:Gem::Version
|
34
54
|
version: 1.1.0
|
35
55
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: rspec
|
39
56
|
prerelease: false
|
40
|
-
|
57
|
+
version_requirements: *80755000
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &80754730 !ruby/object:Gem::Requirement
|
41
61
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
62
|
+
requirements:
|
63
|
+
- - =
|
64
|
+
- !ruby/object:Gem::Version
|
45
65
|
version: 2.7.0
|
46
66
|
type: :runtime
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: watir-webdriver
|
50
67
|
prerelease: false
|
51
|
-
|
68
|
+
version_requirements: *80754730
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: watir-webdriver
|
71
|
+
requirement: &80754480 !ruby/object:Gem::Requirement
|
52
72
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
73
|
+
requirements:
|
74
|
+
- - =
|
75
|
+
- !ruby/object:Gem::Version
|
56
76
|
version: 0.3.5
|
57
77
|
type: :runtime
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: rmagick
|
61
78
|
prerelease: false
|
62
|
-
|
63
|
-
|
64
|
-
requirements:
|
65
|
-
- - "="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 2.13.1
|
68
|
-
type: :runtime
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: *80754480
|
80
|
+
- !ruby/object:Gem::Dependency
|
71
81
|
name: wait_for
|
72
|
-
|
73
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
82
|
+
requirement: &80754240 !ruby/object:Gem::Requirement
|
74
83
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
84
|
+
requirements:
|
85
|
+
- - =
|
86
|
+
- !ruby/object:Gem::Version
|
78
87
|
version: 0.1.1
|
79
88
|
type: :runtime
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: hoe
|
83
89
|
prerelease: false
|
84
|
-
|
90
|
+
version_requirements: *80754240
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: hoe
|
93
|
+
requirement: &80753970 !ruby/object:Gem::Requirement
|
85
94
|
none: false
|
86
|
-
requirements:
|
95
|
+
requirements:
|
87
96
|
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '2.12'
|
90
99
|
type: :development
|
91
|
-
|
92
|
-
|
93
|
-
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *80753970
|
102
|
+
description: ''
|
103
|
+
email:
|
94
104
|
- cliff.cyphers@gmail.com
|
95
|
-
executables:
|
105
|
+
executables:
|
96
106
|
- whirlwind
|
97
107
|
extensions: []
|
98
|
-
|
99
|
-
extra_rdoc_files:
|
108
|
+
extra_rdoc_files:
|
100
109
|
- History.txt
|
101
110
|
- Manifest.txt
|
102
111
|
- README.txt
|
103
|
-
files:
|
112
|
+
files:
|
104
113
|
- .autotest
|
105
114
|
- History.txt
|
106
115
|
- Manifest.txt
|
@@ -176,34 +185,40 @@ files:
|
|
176
185
|
- lib/ordered_xml_markup.rb
|
177
186
|
- lib/io.rb
|
178
187
|
- images/.placeholder
|
188
|
+
- sites/google/results/.placeholder
|
189
|
+
- sites/google/conf/urls.yaml
|
190
|
+
- sites/google/features/search.feature
|
191
|
+
- sites/google/features/step_defn/google.rb
|
192
|
+
- sites/google/elements/google_elements.rb
|
193
|
+
- sites/google/elements/google_common_elements.rb
|
194
|
+
- sites/google/flows/search_flows.rb
|
195
|
+
- sites/google/flows/search_results_flows.rb
|
179
196
|
- .gemtest
|
180
197
|
homepage: http://github.com/ccyphers/whirlwind
|
181
198
|
licenses: []
|
182
|
-
|
183
199
|
post_install_message:
|
184
|
-
rdoc_options:
|
200
|
+
rdoc_options:
|
185
201
|
- --main
|
186
202
|
- README.txt
|
187
|
-
require_paths:
|
203
|
+
require_paths:
|
188
204
|
- lib
|
189
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
205
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
190
206
|
none: false
|
191
|
-
requirements:
|
192
|
-
- -
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version:
|
195
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - ! '>='
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0'
|
211
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
212
|
none: false
|
197
|
-
requirements:
|
198
|
-
- -
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
version:
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
201
217
|
requirements: []
|
202
|
-
|
203
218
|
rubyforge_project: whirlwind
|
204
219
|
rubygems_version: 1.8.11
|
205
220
|
signing_key:
|
206
221
|
specification_version: 3
|
207
|
-
summary:
|
208
|
-
test_files:
|
222
|
+
summary: ''
|
223
|
+
test_files:
|
209
224
|
- test/test_whirlwind.rb
|