page_magic 0.8.8 → 0.8.9
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/Gemfile +2 -1
- data/Gemfile.lock +11 -3
- data/VERSION +1 -1
- data/lib/page_magic.rb +26 -8
- data/page_magic.gemspec +3 -6
- data/spec/page_magic_spec.rb +37 -0
- metadata +12 -48
data/Gemfile
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem "watir-webdriver"
|
4
3
|
gem 'capybara'
|
5
4
|
gem 'wait'
|
6
5
|
|
7
6
|
group :test do
|
7
|
+
gem "watir-webdriver"
|
8
8
|
gem 'sinatra'
|
9
9
|
gem "rspec", require: 'rspec/core/rake_task'
|
10
10
|
gem "simplecov", require: false
|
11
|
+
gem 'poltergeist'
|
11
12
|
end
|
12
13
|
|
13
14
|
group :development do
|
data/Gemfile.lock
CHANGED
@@ -9,8 +9,9 @@ GEM
|
|
9
9
|
xpath (~> 2.0)
|
10
10
|
childprocess (0.3.9)
|
11
11
|
ffi (~> 1.0, >= 1.0.11)
|
12
|
+
cliver (0.2.2)
|
12
13
|
diff-lcs (1.2.4)
|
13
|
-
ffi (1.
|
14
|
+
ffi (1.9.3)
|
14
15
|
git (1.2.5)
|
15
16
|
jeweler (1.8.4)
|
16
17
|
bundler (~> 1.0)
|
@@ -23,6 +24,11 @@ GEM
|
|
23
24
|
multi_json (1.7.3)
|
24
25
|
nokogiri (1.6.0)
|
25
26
|
mini_portile (~> 0.5.0)
|
27
|
+
poltergeist (1.4.1)
|
28
|
+
capybara (~> 2.1.0)
|
29
|
+
cliver (~> 0.2.1)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
websocket-driver (>= 0.2.0)
|
26
32
|
rack (1.5.2)
|
27
33
|
rack-protection (1.5.0)
|
28
34
|
rack
|
@@ -40,10 +46,10 @@ GEM
|
|
40
46
|
diff-lcs (>= 1.1.3, < 2.0)
|
41
47
|
rspec-mocks (2.14.4)
|
42
48
|
rubyzip (0.9.9)
|
43
|
-
selenium-webdriver (2.
|
49
|
+
selenium-webdriver (2.35.1)
|
44
50
|
childprocess (>= 0.2.5)
|
45
51
|
multi_json (~> 1.0)
|
46
|
-
rubyzip
|
52
|
+
rubyzip (< 1.0.0)
|
47
53
|
websocket (~> 1.0.4)
|
48
54
|
simplecov (0.7.1)
|
49
55
|
multi_json (~> 1.0)
|
@@ -58,6 +64,7 @@ GEM
|
|
58
64
|
watir-webdriver (0.6.4)
|
59
65
|
selenium-webdriver (>= 2.18.0)
|
60
66
|
websocket (1.0.7)
|
67
|
+
websocket-driver (0.3.0)
|
61
68
|
xpath (2.0.0)
|
62
69
|
nokogiri (~> 1.3)
|
63
70
|
|
@@ -67,6 +74,7 @@ PLATFORMS
|
|
67
74
|
DEPENDENCIES
|
68
75
|
capybara
|
69
76
|
jeweler (~> 1.8.4)
|
77
|
+
poltergeist
|
70
78
|
rspec
|
71
79
|
simplecov
|
72
80
|
sinatra
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.9
|
data/lib/page_magic.rb
CHANGED
@@ -14,16 +14,34 @@ require 'page_magic/page_section'
|
|
14
14
|
module PageMagic
|
15
15
|
class << self
|
16
16
|
def session browser=nil, options = {}
|
17
|
-
if browser
|
18
|
-
Capybara.
|
19
|
-
options[:browser] = browser
|
20
|
-
Capybara::Selenium::Driver.new(app, options)
|
21
|
-
end
|
22
|
-
Session.new(Capybara::Session.new(browser, nil))
|
17
|
+
if browser.is_a?(Hash)
|
18
|
+
Session.new(Capybara::Session.new(:rack_test, browser[:application]))
|
23
19
|
else
|
24
|
-
|
25
|
-
|
20
|
+
if browser
|
21
|
+
application = options.delete(:application)
|
22
|
+
|
23
|
+
Capybara.register_driver browser do |app|
|
24
|
+
options[:browser] = browser
|
25
|
+
case browser
|
26
|
+
when :poltergeist
|
27
|
+
require 'capybara/poltergeist'
|
28
|
+
Capybara::Poltergeist::Driver.new(app)
|
29
|
+
when :rack_test
|
30
|
+
Capybara::RackTest::Driver.new(app, options)
|
31
|
+
else
|
32
|
+
require 'watir-webdriver'
|
33
|
+
Capybara::Selenium::Driver.new(app, options)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
Session.new(Capybara::Session.new(browser, application))
|
39
|
+
else
|
40
|
+
Capybara.reset!
|
41
|
+
Session.new(Capybara.current_session)
|
42
|
+
end
|
26
43
|
end
|
44
|
+
|
27
45
|
end
|
28
46
|
|
29
47
|
def included clazz
|
data/page_magic.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "page_magic"
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Leon Davis"]
|
12
|
-
s.date = "2013-11-
|
12
|
+
s.date = "2013-11-13"
|
13
13
|
s.description = "Framework for modeling and interacting with webpages which wraps capybara"
|
14
14
|
s.email = "info@lad-tech.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -50,27 +50,24 @@ Gem::Specification.new do |s|
|
|
50
50
|
s.homepage = "https://github.com/ladtech/page_magic"
|
51
51
|
s.licenses = ["ruby"]
|
52
52
|
s.require_paths = ["lib"]
|
53
|
-
s.rubygems_version = "1.8.
|
53
|
+
s.rubygems_version = "1.8.10"
|
54
54
|
s.summary = "Framework for modeling and interacting with webpages"
|
55
55
|
|
56
56
|
if s.respond_to? :specification_version then
|
57
57
|
s.specification_version = 3
|
58
58
|
|
59
59
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
60
|
-
s.add_runtime_dependency(%q<watir-webdriver>, [">= 0"])
|
61
60
|
s.add_runtime_dependency(%q<capybara>, [">= 0"])
|
62
61
|
s.add_runtime_dependency(%q<wait>, [">= 0"])
|
63
62
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
64
63
|
s.add_runtime_dependency(%q<watir-webdriver>, [">= 0"])
|
65
64
|
else
|
66
|
-
s.add_dependency(%q<watir-webdriver>, [">= 0"])
|
67
65
|
s.add_dependency(%q<capybara>, [">= 0"])
|
68
66
|
s.add_dependency(%q<wait>, [">= 0"])
|
69
67
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
70
68
|
s.add_dependency(%q<watir-webdriver>, [">= 0"])
|
71
69
|
end
|
72
70
|
else
|
73
|
-
s.add_dependency(%q<watir-webdriver>, [">= 0"])
|
74
71
|
s.add_dependency(%q<capybara>, [">= 0"])
|
75
72
|
s.add_dependency(%q<wait>, [">= 0"])
|
76
73
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
data/spec/page_magic_spec.rb
CHANGED
@@ -1,9 +1,21 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'capybara/rspec'
|
3
|
+
require 'sinatra/base'
|
2
4
|
|
3
5
|
describe 'page magic' do
|
6
|
+
include Capybara::DSL
|
4
7
|
|
5
8
|
describe 'class level' do
|
9
|
+
let(:app_class) do
|
10
|
+
Class.new do
|
11
|
+
def call env
|
12
|
+
[200, {}, ["hello world!!"]]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
6
17
|
context 'session' do
|
18
|
+
|
7
19
|
it 'should setup a session using the specified browser' do
|
8
20
|
Capybara::Session.should_receive(:new).with(:chrome, nil).and_return(:chrome_session)
|
9
21
|
|
@@ -18,6 +30,31 @@ describe 'page magic' do
|
|
18
30
|
session = PageMagic.session
|
19
31
|
session.browser.mode.should == :rack_test
|
20
32
|
end
|
33
|
+
|
34
|
+
it 'should use the supplied Rack application' do
|
35
|
+
session = PageMagic.session(application: app_class.new)
|
36
|
+
session.browser.visit('/')
|
37
|
+
session.browser.text.should == 'hello world!!'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should use the rack app with a given browser' do
|
41
|
+
session = PageMagic.session(:rack_test, application: app_class.new)
|
42
|
+
session.browser.mode.should == :rack_test
|
43
|
+
session.browser.visit('/')
|
44
|
+
session.browser.text.should == 'hello world!!'
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'supported browsers' do
|
48
|
+
it 'should support the poltergeist browser' do
|
49
|
+
session = PageMagic.session(:poltergeist, application: app_class.new)
|
50
|
+
session.browser.driver.is_a?(Capybara::Poltergeist::Driver).should be_true
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should support the selenium browser' do
|
54
|
+
session = PageMagic.session(:firefox, application: app_class.new)
|
55
|
+
session.browser.driver.is_a?(Capybara::Selenium::Driver).should be_true
|
56
|
+
end
|
57
|
+
end
|
21
58
|
end
|
22
59
|
end
|
23
60
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,27 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: watir-webdriver
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
14
|
- !ruby/object:Gem::Dependency
|
31
15
|
name: capybara
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &10020580 !ruby/object:Gem::Requirement
|
33
17
|
none: false
|
34
18
|
requirements:
|
35
19
|
- - ! '>='
|
@@ -37,15 +21,10 @@ dependencies:
|
|
37
21
|
version: '0'
|
38
22
|
type: :runtime
|
39
23
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
24
|
+
version_requirements: *10020580
|
46
25
|
- !ruby/object:Gem::Dependency
|
47
26
|
name: wait
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &10019480 !ruby/object:Gem::Requirement
|
49
28
|
none: false
|
50
29
|
requirements:
|
51
30
|
- - ! '>='
|
@@ -53,15 +32,10 @@ dependencies:
|
|
53
32
|
version: '0'
|
54
33
|
type: :runtime
|
55
34
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
35
|
+
version_requirements: *10019480
|
62
36
|
- !ruby/object:Gem::Dependency
|
63
37
|
name: jeweler
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &10018320 !ruby/object:Gem::Requirement
|
65
39
|
none: false
|
66
40
|
requirements:
|
67
41
|
- - ~>
|
@@ -69,15 +43,10 @@ dependencies:
|
|
69
43
|
version: 1.8.4
|
70
44
|
type: :development
|
71
45
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 1.8.4
|
46
|
+
version_requirements: *10018320
|
78
47
|
- !ruby/object:Gem::Dependency
|
79
48
|
name: watir-webdriver
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &10033700 !ruby/object:Gem::Requirement
|
81
50
|
none: false
|
82
51
|
requirements:
|
83
52
|
- - ! '>='
|
@@ -85,12 +54,7 @@ dependencies:
|
|
85
54
|
version: '0'
|
86
55
|
type: :runtime
|
87
56
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
57
|
+
version_requirements: *10033700
|
94
58
|
description: Framework for modeling and interacting with webpages which wraps capybara
|
95
59
|
email: info@lad-tech.com
|
96
60
|
executables: []
|
@@ -143,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
107
|
version: '0'
|
144
108
|
segments:
|
145
109
|
- 0
|
146
|
-
hash:
|
110
|
+
hash: 1067897609518748407
|
147
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
112
|
none: false
|
149
113
|
requirements:
|
@@ -152,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
116
|
version: '0'
|
153
117
|
requirements: []
|
154
118
|
rubyforge_project:
|
155
|
-
rubygems_version: 1.8.
|
119
|
+
rubygems_version: 1.8.10
|
156
120
|
signing_key:
|
157
121
|
specification_version: 3
|
158
122
|
summary: Framework for modeling and interacting with webpages
|