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