io.wcm.handler.media.MediaArgsTest.java Source code

Java tutorial

Introduction

Here is the source code for io.wcm.handler.media.MediaArgsTest.java

Source

/*
 * #%L
 * wcm.io
 * %%
 * Copyright (C) 2014 wcm.io
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package io.wcm.handler.media;

import static io.wcm.handler.media.testcontext.DummyMediaFormats.EDITORIAL_1COL;
import static io.wcm.handler.media.testcontext.DummyMediaFormats.EDITORIAL_2COL;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import io.wcm.handler.media.format.MediaFormat;
import io.wcm.handler.media.markup.DragDropSupport;
import io.wcm.handler.url.UrlModes;
import io.wcm.sling.commons.resource.ImmutableValueMap;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;

import com.google.common.collect.ImmutableMap;

public class MediaArgsTest {

    @Test
    public void testGetMediaFormats() {
        MediaArgs mediaArgs;

        mediaArgs = new MediaArgs(EDITORIAL_1COL);
        assertArrayEquals(new MediaFormat[] { EDITORIAL_1COL }, mediaArgs.getMediaFormats());
        assertFalse(mediaArgs.isMediaFormatsMandatory());

        mediaArgs = new MediaArgs("editorial_1col");
        assertArrayEquals(new String[] { "editorial_1col" }, mediaArgs.getMediaFormatNames());
        assertFalse(mediaArgs.isMediaFormatsMandatory());

        mediaArgs = new MediaArgs(EDITORIAL_1COL, EDITORIAL_2COL);
        assertArrayEquals(new MediaFormat[] { EDITORIAL_1COL, EDITORIAL_2COL }, mediaArgs.getMediaFormats());
        assertFalse(mediaArgs.isMediaFormatsMandatory());

        mediaArgs = new MediaArgs("editorial_1col", "editorial_2col");
        assertArrayEquals(new String[] { "editorial_1col", "editorial_2col" }, mediaArgs.getMediaFormatNames());
        assertFalse(mediaArgs.isMediaFormatsMandatory());

        assertNull(new MediaArgs().mediaFormat((MediaFormat) null).getMediaFormats());
        assertNull(new MediaArgs().mediaFormatName((String) null).getMediaFormatNames());
    }

    @Test
    public void testGetMediaFormatsMandatory() {
        MediaArgs mediaArgs;

        mediaArgs = new MediaArgs().mandatoryMediaFormats(EDITORIAL_1COL, EDITORIAL_2COL);
        assertArrayEquals(new MediaFormat[] { EDITORIAL_1COL, EDITORIAL_2COL }, mediaArgs.getMediaFormats());
        assertTrue(mediaArgs.isMediaFormatsMandatory());

        mediaArgs = new MediaArgs().mandatoryMediaFormatNames("editorial_1col", "editorial_2col");
        assertArrayEquals(new String[] { "editorial_1col", "editorial_2col" }, mediaArgs.getMediaFormatNames());
        assertTrue(mediaArgs.isMediaFormatsMandatory());

        assertNull(new MediaArgs().mandatoryMediaFormats((MediaFormat[]) null).getMediaFormats());
        assertNull(new MediaArgs().mandatoryMediaFormatNames((String[]) null).getMediaFormatNames());
    }

    @Test
    public void testGetUrlMode() {
        assertEquals(UrlModes.FULL_URL, new MediaArgs().urlMode(UrlModes.FULL_URL).getUrlMode());
    }

    @Test
    public void testFixedDimension() {
        MediaArgs mediaArgs = new MediaArgs().fixedDimension(100, 50);
        assertEquals(100, mediaArgs.getFixedWidth());
        assertEquals(50, mediaArgs.getFixedHeight());

        mediaArgs.fixedWidth(200);
        mediaArgs.fixedHeight(100);
        assertEquals(200, mediaArgs.getFixedWidth());
        assertEquals(100, mediaArgs.getFixedHeight());
    }

    @Test
    public void testGetFileExtensions() {
        assertArrayEquals(new String[] { "gif" }, new MediaArgs().fileExtension("gif").getFileExtensions());
        assertArrayEquals(new String[] { "gif", "jpg" },
                new MediaArgs().fileExtensions("gif", "jpg").getFileExtensions());

        assertNull(new MediaArgs().fileExtension(null).getFileExtensions());
    }

    @Test
    public void testGetProperties() {
        Map<String, Object> props = ImmutableMap.<String, Object>of("prop1", "value1");

        MediaArgs mediaArgs = new MediaArgs().property("prop3", "value3").properties(props).property("prop2",
                "value2");

        assertEquals(3, mediaArgs.getProperties().size());
        assertEquals("value1", mediaArgs.getProperties().get("prop1", String.class));
        assertEquals("value2", mediaArgs.getProperties().get("prop2", String.class));
        assertEquals("value3", mediaArgs.getProperties().get("prop3", String.class));
    }

    @Test
    public void testDragDropSupport() {
        MediaArgs mediaArgs = new MediaArgs();
        assertEquals(DragDropSupport.AUTO, mediaArgs.getDragDropSupport());

        mediaArgs.dragDropSupport(DragDropSupport.ALWAYS);
        assertEquals(DragDropSupport.ALWAYS, mediaArgs.getDragDropSupport());
    }

    @Test
    public void testClone() {
        MediaFormat[] mediaFormats = new MediaFormat[] { EDITORIAL_1COL, EDITORIAL_2COL };
        String[] mediaFormatNames = new String[] { "mf1", "mf2" };
        String[] fileExtensions = new String[] { "ext1", "ext2" };
        Map<String, Object> props = ImmutableValueMap.of("prop1", "value1", "prop2", "value2");

        MediaArgs mediaArgs = new MediaArgs();
        mediaArgs.mediaFormats(mediaFormats);
        mediaArgs.mediaFormatNames(mediaFormatNames);
        mediaArgs.mediaFormatsMandatory(true);
        mediaArgs.fileExtensions(fileExtensions);
        mediaArgs.urlMode(UrlModes.FULL_URL_FORCENONSECURE);
        mediaArgs.fixedWidth(10);
        mediaArgs.fixedHeight(20);
        mediaArgs.forceDownload(true);
        mediaArgs.altText("altText");
        mediaArgs.dummyImage(true);
        mediaArgs.dummyImageUrl("/dummy/url");
        mediaArgs.includeAssetThumbnails(true);
        mediaArgs.dragDropSupport(DragDropSupport.NEVER);
        mediaArgs.properties(props);

        MediaArgs clone = mediaArgs.clone();
        assertNotSame(mediaArgs, clone);
        assertNotSame(mediaArgs.getMediaFormats(), clone.getMediaFormats());
        assertNotSame(mediaArgs.getMediaFormatNames(), clone.getMediaFormatNames());
        assertNotSame(mediaArgs.getFileExtensions(), clone.getFileExtensions());
        assertNotSame(mediaArgs.getProperties(), clone.getProperties());

        assertArrayEquals(mediaArgs.getMediaFormats(), clone.getMediaFormats());
        assertArrayEquals(mediaArgs.getMediaFormatNames(), clone.getMediaFormatNames());
        assertEquals(mediaArgs.isMediaFormatsMandatory(), clone.isMediaFormatsMandatory());
        assertArrayEquals(mediaArgs.getFileExtensions(), clone.getFileExtensions());
        assertEquals(mediaArgs.getUrlMode(), clone.getUrlMode());
        assertEquals(mediaArgs.getFixedWidth(), clone.getFixedWidth());
        assertEquals(mediaArgs.getFixedHeight(), clone.getFixedHeight());
        assertEquals(mediaArgs.isForceDownload(), clone.isForceDownload());
        assertEquals(mediaArgs.getAltText(), clone.getAltText());
        assertEquals(mediaArgs.isDummyImage(), clone.isDummyImage());
        assertEquals(mediaArgs.getDummyImageUrl(), clone.getDummyImageUrl());
        assertEquals(mediaArgs.isIncludeAssetThumbnails(), clone.isIncludeAssetThumbnails());
        assertEquals(mediaArgs.getDragDropSupport(), clone.getDragDropSupport());
        assertEquals(ImmutableValueMap.copyOf(mediaArgs.getProperties()),
                ImmutableValueMap.copyOf(clone.getProperties()));
    }

    @Test
    public void testEquals() {
        MediaArgs mediaArgs1 = new MediaArgs().mediaFormat(EDITORIAL_1COL).urlMode(UrlModes.FULL_URL)
                .altText("abc");
        MediaArgs mediaArgs2 = new MediaArgs().mediaFormat(EDITORIAL_1COL).urlMode(UrlModes.FULL_URL)
                .altText("abc");
        MediaArgs mediaArgs3 = new MediaArgs().mediaFormat(EDITORIAL_2COL).urlMode(UrlModes.FULL_URL)
                .altText("abc");

        assertTrue(mediaArgs1.equals(mediaArgs2));
        assertTrue(mediaArgs2.equals(mediaArgs1));
        assertFalse(mediaArgs1.equals(mediaArgs3));
        assertFalse(mediaArgs2.equals(mediaArgs3));
    }

    @Test
    public void testToString() throws Exception {
        MediaArgs mediaArgs = new MediaArgs().altText("abc");
        assertTrue(StringUtils.contains(mediaArgs.toString(), "abc"));
    }

}