capybara-webkit 0.14.0 → 0.14.1
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.lock +1 -1
- data/NEWS.md +6 -0
- data/README.md +1 -1
- data/lib/capybara/webkit/connection.rb +2 -0
- data/lib/capybara/webkit/version.rb +1 -1
- data/spec/driver_rendering_spec.rb +24 -4
- data/spec/driver_spec.rb +5 -30
- data/src/Render.cpp +1 -2
- data/src/WebPage.cpp +3 -2
- data/src/WebPage.h +1 -1
- metadata +16 -16
data/Gemfile.lock
CHANGED
data/NEWS.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
New for 0.14.1:
|
2
|
+
|
3
|
+
* Rescue from Errno::ESRCH in the exit hook in case webkit_server has already ended.
|
4
|
+
* Remove web font override for first-letter and first-line pseudo elements, which was causing issues for some users.
|
5
|
+
* Restore viewport dimensions after rendering screenshots.
|
6
|
+
|
1
7
|
New for 0.14.0:
|
2
8
|
|
3
9
|
* URL blacklist support.
|
data/README.md
CHANGED
@@ -192,4 +192,4 @@ The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|
|
192
192
|
License
|
193
193
|
-------
|
194
194
|
|
195
|
-
capybara-webkit is Copyright (c) 2010-
|
195
|
+
capybara-webkit is Copyright (c) 2010-2013 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
|
@@ -43,7 +43,7 @@ describe Capybara::Webkit::Driver, "rendering an image" do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "height should be at least 10px" do
|
46
|
-
@image[:height].should >= 10
|
46
|
+
@image[:height].should be >= 10
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -55,7 +55,12 @@ describe Capybara::Webkit::Driver, "rendering an image" do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "height should match the height given" do
|
58
|
-
@image[:height].should
|
58
|
+
@image[:height].should == 400
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should reset window dimensions to their default value" do
|
62
|
+
driver.evaluate_script('window.innerWidth').should == 1680
|
63
|
+
driver.evaluate_script('window.innerHeight').should == 1050
|
59
64
|
end
|
60
65
|
end
|
61
66
|
|
@@ -63,11 +68,26 @@ describe Capybara::Webkit::Driver, "rendering an image" do
|
|
63
68
|
before { render(:width => 50, :height => 10) }
|
64
69
|
|
65
70
|
it "width should be greater than the width given" do
|
66
|
-
@image[:width].should > 50
|
71
|
+
@image[:width].should be > 50
|
67
72
|
end
|
68
73
|
|
69
74
|
it "height should be greater than the height given" do
|
70
|
-
@image[:height].should > 10
|
75
|
+
@image[:height].should be > 10
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should restore viewport dimensions after rendering" do
|
79
|
+
driver.evaluate_script('window.innerWidth').should == 1680
|
80
|
+
driver.evaluate_script('window.innerHeight').should == 1050
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "with a custom viewport size" do
|
85
|
+
before { driver.resize_window(800, 600) }
|
86
|
+
|
87
|
+
it "should restore viewport dimensions after rendering" do
|
88
|
+
render({})
|
89
|
+
driver.evaluate_script('window.innerWidth').should == 800
|
90
|
+
driver.evaluate_script('window.innerHeight').should == 600
|
71
91
|
end
|
72
92
|
end
|
73
93
|
end
|
data/spec/driver_spec.rb
CHANGED
@@ -1334,14 +1334,10 @@ describe Capybara::Webkit::Driver do
|
|
1334
1334
|
p { font-family: "Verdana"; }
|
1335
1335
|
p:before { font-family: "Verdana"; }
|
1336
1336
|
p:after { font-family: "Verdana"; }
|
1337
|
-
#first-line-div:first-line { font-family: "Verdana"; }
|
1338
|
-
#first-letter-div:first-letter { font-family: "Verdana"; }
|
1339
1337
|
</style>
|
1340
1338
|
</head>
|
1341
1339
|
<body>
|
1342
1340
|
<p id="text">Hello</p>
|
1343
|
-
<p id="first-line-div">Hello first line.</p>
|
1344
|
-
<p id="first-letter-div">Hello first letter.</p>
|
1345
1341
|
</body>
|
1346
1342
|
</html>
|
1347
1343
|
HTML
|
@@ -1349,43 +1345,22 @@ describe Capybara::Webkit::Driver do
|
|
1349
1345
|
|
1350
1346
|
before { visit("/") }
|
1351
1347
|
|
1352
|
-
|
1353
|
-
|
1348
|
+
let(:font_family) do
|
1349
|
+
driver.evaluate_script(<<-SCRIPT)
|
1354
1350
|
var element = document.getElementById("text");
|
1355
1351
|
element.ownerDocument.defaultView.getComputedStyle(element, null).getPropertyValue("font-family");
|
1356
1352
|
SCRIPT
|
1357
|
-
font_family.should == "Arial"
|
1358
|
-
end
|
1359
|
-
|
1360
|
-
it "ignores custom fonts before an element" do
|
1361
|
-
font_family = driver.evaluate_script(<<-SCRIPT)
|
1362
|
-
var element = document.getElementById("text");
|
1363
|
-
element.ownerDocument.defaultView.getComputedStyle(element, 'before').getPropertyValue("font-family");
|
1364
|
-
SCRIPT
|
1365
|
-
font_family.should == "Arial"
|
1366
1353
|
end
|
1367
1354
|
|
1368
|
-
it "ignores custom fonts
|
1369
|
-
font_family = driver.evaluate_script(<<-SCRIPT)
|
1370
|
-
var element = document.getElementById("text");
|
1371
|
-
element.ownerDocument.defaultView.getComputedStyle(element, 'after').getPropertyValue("font-family");
|
1372
|
-
SCRIPT
|
1355
|
+
it "ignores custom fonts" do
|
1373
1356
|
font_family.should == "Arial"
|
1374
1357
|
end
|
1375
1358
|
|
1376
|
-
it "ignores custom fonts
|
1377
|
-
font_family = driver.evaluate_script(<<-SCRIPT)
|
1378
|
-
var element = document.getElementById("first-line-div");
|
1379
|
-
element.ownerDocument.defaultView.getComputedStyle(element, 'first-line').getPropertyValue("font-family");
|
1380
|
-
SCRIPT
|
1359
|
+
it "ignores custom fonts before an element" do
|
1381
1360
|
font_family.should == "Arial"
|
1382
1361
|
end
|
1383
1362
|
|
1384
|
-
it "ignores custom fonts
|
1385
|
-
font_family = driver.evaluate_script(<<-SCRIPT)
|
1386
|
-
var element = document.getElementById("first-letter-div");
|
1387
|
-
element.ownerDocument.defaultView.getComputedStyle(element, 'first-letter').getPropertyValue("font-family");
|
1388
|
-
SCRIPT
|
1363
|
+
it "ignores custom fonts after an element" do
|
1389
1364
|
font_family.should == "Arial"
|
1390
1365
|
end
|
1391
1366
|
end
|
data/src/Render.cpp
CHANGED
@@ -11,9 +11,8 @@ void Render::start() {
|
|
11
11
|
int height = arguments()[2].toInt();
|
12
12
|
|
13
13
|
QSize size(width, height);
|
14
|
-
page()->setViewportSize(size);
|
15
14
|
|
16
|
-
bool result = page()->render( imagePath );
|
15
|
+
bool result = page()->render( imagePath, size );
|
17
16
|
|
18
17
|
emitFinished(result);
|
19
18
|
}
|
data/src/WebPage.cpp
CHANGED
@@ -70,7 +70,7 @@ void WebPage::loadJavascript() {
|
|
70
70
|
}
|
71
71
|
|
72
72
|
void WebPage::setUserStylesheet() {
|
73
|
-
QString data = QString("*, :
|
73
|
+
QString data = QString("*, :before, :after { font-family: 'Arial' ! important; }").toUtf8().toBase64();
|
74
74
|
QUrl url = QUrl(QString("data:text/css;charset=utf-8;base64,") + data);
|
75
75
|
settings()->setUserStyleSheetUrl(url);
|
76
76
|
}
|
@@ -193,12 +193,13 @@ QString WebPage::failureString() {
|
|
193
193
|
return message + m_errorPageMessage;
|
194
194
|
}
|
195
195
|
|
196
|
-
bool WebPage::render(const QString &fileName) {
|
196
|
+
bool WebPage::render(const QString &fileName, const QSize &minimumSize) {
|
197
197
|
QFileInfo fileInfo(fileName);
|
198
198
|
QDir dir;
|
199
199
|
dir.mkpath(fileInfo.absolutePath());
|
200
200
|
|
201
201
|
QSize viewportSize = this->viewportSize();
|
202
|
+
this->setViewportSize(minimumSize);
|
202
203
|
QSize pageSize = this->mainFrame()->contentsSize();
|
203
204
|
if (pageSize.isEmpty()) {
|
204
205
|
return false;
|
data/src/WebPage.h
CHANGED
@@ -20,7 +20,7 @@ class WebPage : public QWebPage {
|
|
20
20
|
void setPromptText(QString action);
|
21
21
|
int getLastStatus();
|
22
22
|
void setCustomNetworkAccessManager();
|
23
|
-
bool render(const QString &fileName);
|
23
|
+
bool render(const QString &fileName, const QSize &minimumSize);
|
24
24
|
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
|
25
25
|
void setSkipImageLoading(bool skip);
|
26
26
|
QVariantList consoleMessages();
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-webkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,11 +14,11 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2013-01-
|
17
|
+
date: 2013-01-13 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: capybara
|
21
|
-
requirement: &
|
21
|
+
requirement: &9711180 !ruby/object:Gem::Requirement
|
22
22
|
none: false
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
@@ -29,10 +29,10 @@ dependencies:
|
|
29
29
|
version: 2.0.2
|
30
30
|
type: :runtime
|
31
31
|
prerelease: false
|
32
|
-
version_requirements: *
|
32
|
+
version_requirements: *9711180
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: json
|
35
|
-
requirement: &
|
35
|
+
requirement: &7355880 !ruby/object:Gem::Requirement
|
36
36
|
none: false
|
37
37
|
requirements:
|
38
38
|
- - ! '>='
|
@@ -40,10 +40,10 @@ dependencies:
|
|
40
40
|
version: '0'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
|
-
version_requirements: *
|
43
|
+
version_requirements: *7355880
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: rspec
|
46
|
-
requirement: &
|
46
|
+
requirement: &7240560 !ruby/object:Gem::Requirement
|
47
47
|
none: false
|
48
48
|
requirements:
|
49
49
|
- - ~>
|
@@ -51,10 +51,10 @@ dependencies:
|
|
51
51
|
version: 2.6.0
|
52
52
|
type: :development
|
53
53
|
prerelease: false
|
54
|
-
version_requirements: *
|
54
|
+
version_requirements: *7240560
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sinatra
|
57
|
-
requirement: &
|
57
|
+
requirement: &7239700 !ruby/object:Gem::Requirement
|
58
58
|
none: false
|
59
59
|
requirements:
|
60
60
|
- - ! '>='
|
@@ -62,10 +62,10 @@ dependencies:
|
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
|
-
version_requirements: *
|
65
|
+
version_requirements: *7239700
|
66
66
|
- !ruby/object:Gem::Dependency
|
67
67
|
name: mini_magick
|
68
|
-
requirement: &
|
68
|
+
requirement: &7238900 !ruby/object:Gem::Requirement
|
69
69
|
none: false
|
70
70
|
requirements:
|
71
71
|
- - ! '>='
|
@@ -73,10 +73,10 @@ dependencies:
|
|
73
73
|
version: '0'
|
74
74
|
type: :development
|
75
75
|
prerelease: false
|
76
|
-
version_requirements: *
|
76
|
+
version_requirements: *7238900
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
78
|
name: rake
|
79
|
-
requirement: &
|
79
|
+
requirement: &7238420 !ruby/object:Gem::Requirement
|
80
80
|
none: false
|
81
81
|
requirements:
|
82
82
|
- - ! '>='
|
@@ -84,10 +84,10 @@ dependencies:
|
|
84
84
|
version: '0'
|
85
85
|
type: :development
|
86
86
|
prerelease: false
|
87
|
-
version_requirements: *
|
87
|
+
version_requirements: *7238420
|
88
88
|
- !ruby/object:Gem::Dependency
|
89
89
|
name: appraisal
|
90
|
-
requirement: &
|
90
|
+
requirement: &7237740 !ruby/object:Gem::Requirement
|
91
91
|
none: false
|
92
92
|
requirements:
|
93
93
|
- - ~>
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
version: 0.4.0
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
|
-
version_requirements: *
|
98
|
+
version_requirements: *7237740
|
99
99
|
description:
|
100
100
|
email: support@thoughtbot.com
|
101
101
|
executables: []
|