mirror of
https://github.com/teampoltergeist/poltergeist.git
synced 2022-11-09 12:05:00 -05:00
Added ability to set paper_size via a driver setter
This commit is contained in:
parent
d063199ba9
commit
25a51f13f8
9 changed files with 45 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
### Next release ###
|
||||
|
||||
#### Features ####
|
||||
* Added ability to set paper_size via a driver setter (Philippe Lehoux)
|
||||
|
||||
#### Bug fixes ####
|
||||
|
||||
|
|
|
@ -171,6 +171,10 @@ module Capybara::Poltergeist
|
|||
command 'render_base64', format.to_s, !!options[:full], options[:selector]
|
||||
end
|
||||
|
||||
def set_paper_size(size)
|
||||
command 'set_paper_size', size
|
||||
end
|
||||
|
||||
def resize(width, height)
|
||||
command 'resize', width, height
|
||||
end
|
||||
|
|
|
@ -277,6 +277,10 @@ class Poltergeist.Browser
|
|||
@page.setClipRect(rect)
|
||||
dimensions
|
||||
|
||||
set_paper_size: (size) ->
|
||||
@page.setPaperSize(size)
|
||||
this.sendResponse(true)
|
||||
|
||||
resize: (width, height) ->
|
||||
@page.setViewportSize(width: width, height: height)
|
||||
this.sendResponse(true)
|
||||
|
|
|
@ -371,6 +371,11 @@ Poltergeist.Browser = (function() {
|
|||
return dimensions;
|
||||
};
|
||||
|
||||
Browser.prototype.set_paper_size = function(size) {
|
||||
this.page.setPaperSize(size);
|
||||
return this.sendResponse(true);
|
||||
};
|
||||
|
||||
Browser.prototype.resize = function(width, height) {
|
||||
this.page.setViewportSize({
|
||||
width: width,
|
||||
|
|
|
@ -198,6 +198,10 @@ Poltergeist.WebPage = (function() {
|
|||
return this["native"].viewportSize = size;
|
||||
};
|
||||
|
||||
WebPage.prototype.setPaperSize = function(size) {
|
||||
return this["native"].paperSize = size;
|
||||
};
|
||||
|
||||
WebPage.prototype.scrollPosition = function() {
|
||||
return this["native"].scrollPosition;
|
||||
};
|
||||
|
|
|
@ -132,6 +132,9 @@ class Poltergeist.WebPage
|
|||
setViewportSize: (size) ->
|
||||
@native.viewportSize = size
|
||||
|
||||
setPaperSize: (size) ->
|
||||
@native.paperSize = size
|
||||
|
||||
scrollPosition: ->
|
||||
@native.scrollPosition
|
||||
|
||||
|
|
|
@ -161,6 +161,10 @@ module Capybara::Poltergeist
|
|||
browser.render_base64(format, options)
|
||||
end
|
||||
|
||||
def paper_size=(size = {})
|
||||
browser.set_paper_size(size)
|
||||
end
|
||||
|
||||
def resize(width, height)
|
||||
browser.resize(width, height)
|
||||
end
|
||||
|
|
|
@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|||
s.add_development_dependency 'sinatra', '~> 1.0'
|
||||
s.add_development_dependency 'rake', '~> 10.0'
|
||||
s.add_development_dependency 'image_size', '~> 1.0'
|
||||
s.add_development_dependency 'pdf-reader', '~> 1.3.3'
|
||||
s.add_development_dependency 'coffee-script', '~> 2.2.0'
|
||||
s.add_development_dependency 'guard-coffeescript', '~> 1.0.0'
|
||||
s.add_development_dependency 'rspec-rerun', '~> 0.1'
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require 'spec_helper'
|
||||
require 'image_size'
|
||||
require 'pdf/reader'
|
||||
|
||||
module Capybara::Poltergeist
|
||||
describe Driver do
|
||||
|
@ -180,6 +181,24 @@ module Capybara::Poltergeist
|
|||
expect(File.exist?(file)).to be_true
|
||||
end
|
||||
|
||||
context 'when #paper_size= is set' do
|
||||
let(:format) { :pdf }
|
||||
|
||||
it 'changes pdf size' do
|
||||
@session.visit('/poltergeist/long_page')
|
||||
@driver.paper_size = { width: '1in', height: '1in' }
|
||||
|
||||
@driver.save_screenshot(file)
|
||||
|
||||
reader = PDF::Reader.new(file)
|
||||
reader.pages.each do |page|
|
||||
bbox = page.attributes[:MediaBox]
|
||||
width = (bbox[2] - bbox[0]) / 72
|
||||
expect(width).to eq(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
include_examples 'render screen'
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue