52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
let assert = require('assert')
|
|
let imagediff = require('imagediff')
|
|
let Canvas = require('../../app/view/canvas')
|
|
let makeTestImages = require('../data/image')
|
|
let makeImageFixtures = require('../fixture/image')
|
|
|
|
describe('Canvas', function () {
|
|
|
|
it('should draw only Image objects', () => {
|
|
let canvas = new Canvas()
|
|
let image = new window.Image()
|
|
|
|
assert.throws(canvas.drawImage, 'Invalid image')
|
|
|
|
canvas.options.doublePage = true
|
|
|
|
assert.throws(canvas.drawImage.bind(canvas, image), 'Invalid image')
|
|
assert.doesNotThrow(canvas.drawImage.bind(canvas, image, image), 'Invalid image')
|
|
})
|
|
|
|
it('should draw a single page', () => {
|
|
let canvas = new Canvas()
|
|
// TODO refactor how images are generated (do one at a time)
|
|
// TODO update fixture once centering is working again
|
|
makeTestImages((testImages) => {
|
|
makeImageFixtures((fixtureImages) => {
|
|
canvas.drawImage(testImages.portrait1)
|
|
assert(imagediff.equal(canvas.canvas, fixtureImages.singlePortrait))
|
|
})
|
|
})
|
|
})
|
|
|
|
it('should draw a double page')
|
|
|
|
it('should draw a manga double page')
|
|
|
|
it('should draw a single double page spread')
|
|
|
|
it('should show a blank last page if the last double page only has one image')
|
|
|
|
it('should auto-fit to window width')
|
|
|
|
it('should auto-fit to window height')
|
|
|
|
it('should manual zoom')
|
|
|
|
it('should always display the canvas 100% of window width, even when drawing smaller images')
|
|
|
|
it('should always center pages')
|
|
|
|
it('should prevent smaller images from being drawn on top of bigger ones')
|
|
})
|