masque 0.0.2 → 0.1.0
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/lib/masque.rb +0 -4
- data/lib/masque/dsl.rb +48 -0
- data/lib/masque/version.rb +1 -1
- data/masque.gemspec +1 -0
- data/spec/masque_spec.rb +26 -5
- data/spec/support/app.rb +8 -0
- metadata +17 -1
data/lib/masque.rb
CHANGED
data/lib/masque/dsl.rb
CHANGED
@@ -6,5 +6,53 @@ class Masque
|
|
6
6
|
page.driver.render(path)
|
7
7
|
end
|
8
8
|
alias :render :save_screenshot
|
9
|
+
|
10
|
+
def page
|
11
|
+
session
|
12
|
+
end
|
13
|
+
|
14
|
+
def driver
|
15
|
+
session.driver
|
16
|
+
end
|
17
|
+
|
18
|
+
def driver_name
|
19
|
+
case driver
|
20
|
+
when ::Capybara::Driver::Webkit
|
21
|
+
:webkit
|
22
|
+
when ::Capybara::Poltergeist::Driver
|
23
|
+
:poltergeist
|
24
|
+
else
|
25
|
+
:unknown
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_headers(headers = {})
|
30
|
+
case driver_name
|
31
|
+
when :webkit
|
32
|
+
headers.each_pair {|k,v| driver.header(k, v)}
|
33
|
+
when :poltergeist
|
34
|
+
driver.headers = headers
|
35
|
+
else
|
36
|
+
raise "for unknown driver"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
alias :set_request_headers :set_headers
|
40
|
+
|
41
|
+
def cookies
|
42
|
+
driver.cookies # driver specific format
|
43
|
+
end
|
44
|
+
|
45
|
+
def resize(x, y)
|
46
|
+
case driver_name
|
47
|
+
when :webkit
|
48
|
+
driver.resize_window(x, y)
|
49
|
+
when :poltergeist
|
50
|
+
driver.resize(x, y)
|
51
|
+
else
|
52
|
+
raise "for unknown driver"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
alias :resize_window :resize
|
56
|
+
|
9
57
|
end
|
10
58
|
end
|
data/lib/masque/version.rb
CHANGED
data/masque.gemspec
CHANGED
data/spec/masque_spec.rb
CHANGED
@@ -11,11 +11,6 @@ describe Masque do
|
|
11
11
|
m.agent.session = Capybara::Session.new(driver, Dummy)
|
12
12
|
m
|
13
13
|
end
|
14
|
-
after do
|
15
|
-
masque.instance_eval do
|
16
|
-
@agent = nil
|
17
|
-
end
|
18
|
-
end
|
19
14
|
|
20
15
|
it ".new" do
|
21
16
|
opts = {:display => 50, :driver => driver}
|
@@ -47,6 +42,32 @@ describe Masque do
|
|
47
42
|
File.unlink(path)
|
48
43
|
end
|
49
44
|
|
45
|
+
it "#cookies" do
|
46
|
+
cookie = masque.run do
|
47
|
+
visit "/"
|
48
|
+
cookies["rack.session"]
|
49
|
+
end
|
50
|
+
cookie.should_not be_nil
|
51
|
+
end
|
52
|
+
|
53
|
+
it "#set_headers" do
|
54
|
+
masque.run do
|
55
|
+
set_headers({"User-Agent" => "rspec"})
|
56
|
+
visit "/"
|
57
|
+
find('#ua').text.should == "rspec"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
it "#resize" do
|
62
|
+
masque.run do
|
63
|
+
resize(400, 300)
|
64
|
+
visit "/"
|
65
|
+
size = MultiJson.load(find('#js').text)
|
66
|
+
size["w"].should == 400
|
67
|
+
size["h"].should == 300
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
50
71
|
it "return last evaluated value" do
|
51
72
|
body = masque.run do
|
52
73
|
visit "/"
|
data/spec/support/app.rb
CHANGED
@@ -18,7 +18,15 @@ class Dummy < Sinatra::Base
|
|
18
18
|
</style>
|
19
19
|
<title>hi #{params[:arg]}</title>
|
20
20
|
<h1 id="visits">#{session[:visit]}</h1>
|
21
|
+
<div id="ua">#{env["HTTP_USER_AGENT"]}</div>
|
21
22
|
<p>Hello, World!</p>
|
23
|
+
<div id="js"></div>
|
24
|
+
<script>
|
25
|
+
document.getElementById("js").innerHTML = JSON.stringify({
|
26
|
+
h: window.innerHeight,
|
27
|
+
w: window.innerWidth
|
28
|
+
});
|
29
|
+
</script>
|
22
30
|
HTML
|
23
31
|
end
|
24
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: masque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -107,6 +107,22 @@ dependencies:
|
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: multi_json
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
110
126
|
description: JavaScript enabled web crawler kit
|
111
127
|
email:
|
112
128
|
- k@uu59.org
|