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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capybara-webkit (0.14.0)
4
+ capybara-webkit (0.14.1)
5
5
  capybara (~> 2.0, >= 2.0.2)
6
6
  json
7
7
 
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-2012 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
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.
@@ -62,6 +62,8 @@ module Capybara::Webkit
62
62
  else
63
63
  Process.kill("INT", @pid)
64
64
  end
65
+ rescue Errno::ESRCH
66
+ # This just means that the webkit_server process has already ended
65
67
  end
66
68
 
67
69
  def discover_port
@@ -1,7 +1,7 @@
1
1
  module Capybara
2
2
  module Driver
3
3
  class Webkit
4
- VERSION = '0.14.0'.freeze
4
+ VERSION = '0.14.1'.freeze
5
5
  end
6
6
  end
7
7
  end
@@ -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 > 10
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
@@ -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
- it "ignores custom fonts" do
1353
- font_family = driver.evaluate_script(<<-SCRIPT)
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 after an element" do
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 applied to the first-line pseudo element" do
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 applied to the first-letter pseudo element" do
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
@@ -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
  }
@@ -70,7 +70,7 @@ void WebPage::loadJavascript() {
70
70
  }
71
71
 
72
72
  void WebPage::setUserStylesheet() {
73
- QString data = QString("*, :first-line, :first-letter, :before, :after { font-family: 'Arial' ! important; }").toUtf8().toBase64();
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;
@@ -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.0
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-03 00:00:00.000000000 Z
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: &15525620 !ruby/object:Gem::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: *15525620
32
+ version_requirements: *9711180
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: json
35
- requirement: &15519880 !ruby/object:Gem::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: *15519880
43
+ version_requirements: *7355880
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: rspec
46
- requirement: &15509400 !ruby/object:Gem::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: *15509400
54
+ version_requirements: *7240560
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sinatra
57
- requirement: &15507080 !ruby/object:Gem::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: *15507080
65
+ version_requirements: *7239700
66
66
  - !ruby/object:Gem::Dependency
67
67
  name: mini_magick
68
- requirement: &15493300 !ruby/object:Gem::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: *15493300
76
+ version_requirements: *7238900
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: rake
79
- requirement: &15488580 !ruby/object:Gem::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: *15488580
87
+ version_requirements: *7238420
88
88
  - !ruby/object:Gem::Dependency
89
89
  name: appraisal
90
- requirement: &15475400 !ruby/object:Gem::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: *15475400
98
+ version_requirements: *7237740
99
99
  description:
100
100
  email: support@thoughtbot.com
101
101
  executables: []