1 #include "testhelpers.hh"
2 
3 using namespace std;
4 using namespace TestHelpers;
5 
BOOST_AUTO_TEST_CASE(render_one_page)6 BOOST_AUTO_TEST_CASE(render_one_page) {
7 	PDFDocumentReference pdr( TestHelpers::pdfFilename("colored-rectangles.pdf"), PDFCacheOption::keepPDFinMemory );
8 
9 	const auto pageref = pdr.page(0);
10 
11 	const auto left = RenderUtils::renderPagePart(pageref.page, QSize(1920,1080), PagePart::LeftHalf);
12 	const auto right = RenderUtils::renderPagePart(pageref.page, QSize(1920,1200), PagePart::RightHalf);
13 	const auto both = RenderUtils::renderPagePart(pageref.page, QSize(3840,1080), PagePart::FullPage);
14 
15 	const auto leftScreenColor = QColor( 0x88, 0xff, 0x88);
16 	auto rightScreenColor = QColor( 0xff, 0x88, 0xff);
17 
18 	/** Older texlive installation: Note page gets rendered white
19 	 */
20 	const auto fallbackRightScreenColor = QColor( 0xff, 0xff, 0xff);
21 
22 	BOOST_CHECK_NE(rightScreenColor, fallbackRightScreenColor);
23 
24 	/** Check sizes of rendered images **/
25 	BOOST_CHECK_EQUAL( QSize(1920,1080), left.size());
26 	BOOST_CHECK_EQUAL( QSize(1920,1080), right.size());
27 	BOOST_CHECK_EQUAL( QSize(3840,1080), both.size());
28 
29 	/** Check middle pixel of left screen **/
30 	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(960,540)));
31 	BOOST_CHECK_EQUAL( leftScreenColor, QColor(both.pixel(960,540)));
32 
33 	const auto rightScreenMiddle = QColor(right.pixel(960,540));
34 
35 	BOOST_WARN_EQUAL( rightScreenColor, rightScreenMiddle );
36 	/** Check middle pixel of right screen **/
37 	if ( rightScreenMiddle == fallbackRightScreenColor) {
38 		BOOST_TEST_MESSAGE( "Middle of note screen was peak white, "
39 			", using workaround for older latex-beamer versions.");
40 		rightScreenColor = fallbackRightScreenColor;
41 	}
42 	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(960,540)));
43 	BOOST_CHECK_EQUAL( rightScreenColor, QColor(both.pixel(2880,540)));
44 
45 	/** Check all-the-way-left and all-the-way-right pixel colors */
46 	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(0,540)));
47 	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(1919,540)));
48 
49 	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(0,540)));
50 	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(1919,540)));
51 
52 	BOOST_CHECK_EQUAL( leftScreenColor, QColor(both.pixel(0,540)));
53 	BOOST_CHECK_EQUAL( rightScreenColor, QColor(both.pixel(3839,540)));
54 }
55