/*
* Created on 30/ago/2011
* Copyright 2011 by Andrea Vacondio (andrea.vacondio@gmail.com).
*
* This file is part of the Sejda source code
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.sejda.impl.sambox.util;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import java.util.Collections;
import java.util.Set;
import org.sejda.sambox.pdmodel.PageMode;
import org.sejda.sambox.pdmodel.interactive.viewerpreferences.PDViewerPreferences;
import org.junit.Test;
import org.sejda.model.exception.TaskException;
import org.sejda.model.pdf.viewerpreference.PdfBooleanPreference;
import org.sejda.model.pdf.viewerpreference.PdfDirection;
import org.sejda.model.pdf.viewerpreference.PdfDuplex;
import org.sejda.model.pdf.viewerpreference.PdfNonFullScreenPageMode;
import org.sejda.model.pdf.viewerpreference.PdfPageMode;
import org.sejda.model.pdf.viewerpreference.PdfPrintScaling;
/**
* @author Andrea Vacondio
*
*/
public class ViewerPreferencesUtilsTest {
@Test
public void testGetDirection() {
assertEquals(PDViewerPreferences.READING_DIRECTION.L2R,
ViewerPreferencesUtils.getDirection(PdfDirection.LEFT_TO_RIGHT));
assertEquals(PDViewerPreferences.READING_DIRECTION.R2L,
ViewerPreferencesUtils.getDirection(PdfDirection.RIGHT_TO_LEFT));
}
@Test
public void testGetDuplex() {
assertEquals(PDViewerPreferences.DUPLEX.Simplex, ViewerPreferencesUtils.getDuplex(PdfDuplex.SIMPLEX));
assertEquals(PDViewerPreferences.DUPLEX.DuplexFlipLongEdge,
ViewerPreferencesUtils.getDuplex(PdfDuplex.DUPLEX_FLIP_LONG_EDGE));
assertEquals(PDViewerPreferences.DUPLEX.DuplexFlipShortEdge,
ViewerPreferencesUtils.getDuplex(PdfDuplex.DUPLEX_FLIP_SHORT_EDGE));
}
@Test
public void testGetPrintScaling() {
assertEquals(PDViewerPreferences.PRINT_SCALING.None,
ViewerPreferencesUtils.getPrintScaling(PdfPrintScaling.NONE));
assertEquals(PDViewerPreferences.PRINT_SCALING.AppDefault,
ViewerPreferencesUtils.getPrintScaling(PdfPrintScaling.APP_DEFAULT));
}
@Test
public void testGetNFSMode() {
assertEquals(PDViewerPreferences.NON_FULL_SCREEN_PAGE_MODE.UseNone,
ViewerPreferencesUtils.getNFSMode(PdfNonFullScreenPageMode.USE_NONE));
assertEquals(PDViewerPreferences.NON_FULL_SCREEN_PAGE_MODE.UseOC,
ViewerPreferencesUtils.getNFSMode(PdfNonFullScreenPageMode.USE_OC));
assertEquals(PDViewerPreferences.NON_FULL_SCREEN_PAGE_MODE.UseOutlines,
ViewerPreferencesUtils.getNFSMode(PdfNonFullScreenPageMode.USE_OUTLINES));
assertEquals(PDViewerPreferences.NON_FULL_SCREEN_PAGE_MODE.UseThumbs,
ViewerPreferencesUtils.getNFSMode(PdfNonFullScreenPageMode.USE_THUMNS));
}
@Test
public void testSetBooleanPreferences() throws TaskException {
PDViewerPreferences preferences = mock(PDViewerPreferences.class);
Set<PdfBooleanPreference> enabled = Collections.singleton(PdfBooleanPreference.CENTER_WINDOW);
ViewerPreferencesUtils.setBooleanPreferences(preferences, enabled);
verify(preferences).setCenterWindow(true);
verify(preferences).setHideMenubar(false);
verify(preferences).setHideToolbar(false);
verify(preferences).setHideWindowUI(false);
verify(preferences).setDisplayDocTitle(false);
verify(preferences).setFitWindow(false);
}
@Test(expected = TaskException.class)
public void testSetBooleanPreferencesNullPref() throws TaskException {
ViewerPreferencesUtils.setBooleanPreferences(null, Collections.EMPTY_SET);
}
@Test
public void testGetPageMode() {
assertEquals(PageMode.FULL_SCREEN,
ViewerPreferencesUtils.getPageMode(PdfPageMode.FULLSCREEN));
assertEquals(PageMode.USE_ATTACHMENTS,
ViewerPreferencesUtils.getPageMode(PdfPageMode.USE_ATTACHMENTS));
assertEquals(PageMode.USE_NONE, ViewerPreferencesUtils.getPageMode(PdfPageMode.USE_NONE));
assertEquals(PageMode.USE_OPTIONAL_CONTENT,
ViewerPreferencesUtils.getPageMode(PdfPageMode.USE_OC));
assertEquals(PageMode.USE_OUTLINES,
ViewerPreferencesUtils.getPageMode(PdfPageMode.USE_OUTLINES));
assertEquals(PageMode.USE_THUMBS, ViewerPreferencesUtils.getPageMode(PdfPageMode.USE_THUMBS));
}
}