text: 'use strict';
  
  var assert = require('assert');
  var sizes = require('../../src/standardPageSizes');
  
  var integrationTestHelper = require('./integrationTestHelper');
  
  describe('Integration test: basics', function () {
  
  	var testHelper = new integrationTestHelper();
  
  	it('renders text on page', function () {
  		var pages = testHelper.renderPages('A7', {
  			content: [
  				'First paragraph',
  				'Second paragraph on three lines because it is longer'
  			]
  		});
  
  		assert.equal(pages.length, 1);
  		assert.equal(pages[0].items.length, 4);
  		assert.deepEqual(pages[0].items.map(node => node.item).map(item => item.x), [testHelper.MARGINS.left, testHelper.MARGINS.left, testHelper.MARGINS.left, testHelper.MARGINS.left]);
  		assert.deepEqual(pages[0].items.map(node => node.item).map(item => item.y), [testHelper.MARGINS.top, testHelper.MARGINS.top + testHelper.LINE_HEIGHT, testHelper.MARGINS.top + 2 * testHelper.LINE_HEIGHT, testHelper.MARGINS.top + 3 * testHelper.LINE_HEIGHT]);
  		assert.deepEqual(testHelper.getInlineTexts(pages, { page: 0, item: 0 }), ['First ', 'paragraph']);
  		assert.deepEqual(testHelper.getInlineTexts(pages, { page: 0, item: 1 }), ['Second ', 'paragraph ', 'on ']);
  		assert.deepEqual(testHelper.getInlineTexts(pages, { page: 0, item: 2 }), ['three ', 'lines ', 'because ', 'it ', 'is ']);
  		assert.deepEqual(testHelper.getInlineTexts(pages, { page: 0, item: 3 }), ['longer']);
  	});
  
  	it('renders text with margin', function () {
  		var customMargin = 10;
  		var anotherCustomMargin = 13;
  		var dd = {
  			content: [
  				{ text: 'has margin', margin: customMargin },
  				{ text: 'has only top/bottom margin', margin: [0, customMargin] },
  				{
  					text: 'has single set margin',
  					margin: [anotherCustomMargin, anotherCustomMargin, anotherCustomMargin, anotherCustomMargin]
  				},
  				{ text: 'has only right margin', alignment: 'right', marginRight: 20 }
  			]
  		};
  
  		var pages = testHelper.renderPages('A5', dd);
  
  		assert.equal(pages.length, 1);
  		assert.equal(pages[0].items[0].item.x, testHelper.MARGINS.left + customMargin);
  		assert.equal(pages[0].items[0].item.y, testHelper.MARGINS.top + customMargin);
  
  		assert.equal(pages[0].items[1].item.x, testHelper.MARGINS.left);
  		assert.equal(pages[0].items[1].item.y, testHelper.MARGINS.top + customMargin * 3 + testHelper.LINE_HEIGHT);
  
  		assert.equal(pages[0].items[2].item.x, testHelper.MARGINS.left + anotherCustomMargin);
  		assert.equal(pages[0].items[2].item.y.toFixed(3), testHelper.MARGINS.top + customMargin * 4 + anotherCustomMargin + testHelper.LINE_HEIGHT * 2);
  
  		assert.equal(pages[0].items[3].item.x, sizes.A5[0] - testHelper.MARGINS.right - 20 - testHelper.getWidthOfString('has only right margin'));
  		assert.equal(pages[0].items[3].item.y.toFixed(3), (testHelper.MARGINS.top + customMargin * 4 + anotherCustomMargin * 2 + testHelper.LINE_HEIGHT * 3).toFixed(3));
  	});
  
  });
  