capybara-webkit 0.14.0 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []