Package de.agilecoders.wicket.core.markup.html.bootstrap.carousel

Source Code of de.agilecoders.wicket.core.markup.html.bootstrap.carousel.CarouselTest

package de.agilecoders.wicket.core.markup.html.bootstrap.carousel;

import com.google.common.collect.Lists;
import de.agilecoders.wicket.core.WicketApplicationTest;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.tester.TagTester;
import org.junit.Test;

import java.util.List;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;

/**
* Tests the {@link Carousel} component
*
* @author miha
*/
public class CarouselTest extends WicketApplicationTest {
    private static final String MARKUP = "<div wicket:id=\"id\"></div>";

    @Test
    public void renderingCarouselWorks() {
        startComponentInPage(new Carousel(id(), newImageList()), MARKUP);

        tester().assertNoErrorMessage();
    }

    @Test
    public void imageUrlsAreRendered() {
        List<ICarouselImage> images = newImageList();
        startComponentInPage(new Carousel(id(), images), MARKUP);

        List<TagTester> tags = tester().getTagsByWicketId("images");

        assertThat(tags.size(), is(equalTo(3)));

        int i = 0;
        for (ICarouselImage image : images) {
            TagTester imageTag = tags.get(i);

            TagTester tester = imageTag.getChild("src", image.url());
            assertThat(tester, is(not(nullValue())));
            assertThat(tester.getAttribute("src"), is(equalTo(image.url())));

            i++;
        }
    }

    @Test
    public void headersAreRendered() {
        List<ICarouselImage> images = newImageList();
        startComponentInPage(new Carousel(id(), images), MARKUP);

        List<TagTester> tags = tester().getTagsByWicketId("header");

        assertThat(tags.size(), is(equalTo(2)));

        for (ICarouselImage image : images) {
            if (!Strings.isEmpty(image.header())) {
                tester().assertContains("<h4 wicket:id=\"header\">" + image.header() + "</h4>");
            }
        }
    }

    @Test
    public void descriptionsAreRendered() {
        List<ICarouselImage> images = newImageList();
        startComponentInPage(new Carousel(id(), images), MARKUP);

        List<TagTester> tags = tester().getTagsByWicketId("header");

        assertThat(tags.size(), is(equalTo(2)));

        for (ICarouselImage image : images) {
            if (!Strings.isEmpty(image.description())) {
                tester().assertContains("<p wicket:id=\"description\">" + image.description() + "</p>");
            }
        }
    }

    /**
     * @return a list of carousel images
     */
    private List<ICarouselImage> newImageList() {
        return Lists.<ICarouselImage>newArrayList(
                new CarouselImage("http://wb.agilecoders.de/image1.png"),
                new CarouselImage("http://wb.agilecoders.de/image2.png", "header text"),
                new CarouselImage("http://wb.agilecoders.de/image3.png", "header text", "description")
        );
    }

}
TOP

Related Classes of de.agilecoders.wicket.core.markup.html.bootstrap.carousel.CarouselTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.