Package org.carrot2.labs.smartsprites

Source Code of org.carrot2.labs.smartsprites.SpriteDirectiveOccurrenceCollectorTest

package org.carrot2.labs.smartsprites;

import static junit.framework.Assert.assertEquals;
import static org.carrot2.labs.test.Assertions.assertThat;

import org.carrot2.labs.smartsprites.css.CssSyntaxUtils;
import org.carrot2.labs.smartsprites.message.Message;
import org.carrot2.labs.smartsprites.resource.FileSystemResourceHandler;
import org.junit.Before;
import org.junit.Test;

/**
* Test cases for {@link SpriteDirectiveOccurrenceCollector}.
*/
public class SpriteDirectiveOccurrenceCollectorTest extends TestWithMemoryMessageSink
{
    SpriteDirectiveOccurrenceCollector spriteDirectiveOccurrenceCollector;

    @Before
    public void prepare()
    {
        spriteDirectiveOccurrenceCollector = new SpriteDirectiveOccurrenceCollector(
            messageLog, new FileSystemResourceHandler(null,
                SmartSpritesParameters.DEFAULT_CSS_FILE_ENCODING, messageLog));
    }

    @Test
    public void testSpriteImageDirectiveExtractionOneDirectiveComplex()
    {
        final String spriteDirective = "sprite: sprite; sprite-image-url: url('../sprite.png'); sprite-image-layout: vertical";
        final String css = ".test { margin-top: 10px }\n/* some comment */\n" + "/* "
            + spriteDirective + " */";

        assertEquals(spriteDirective, SpriteDirectiveOccurrenceCollector
            .extractSpriteImageDirectiveString(css));
    }

    @Test
    public void testSpriteImageDirectiveExtractionOneDirectiveSimple()
    {
        final String spriteDirective = "sprite: sprite";
        final String css = "/* " + spriteDirective + " */";

        assertEquals(spriteDirective, SpriteDirectiveOccurrenceCollector
            .extractSpriteImageDirectiveString(css));
    }

    @Test
    public void testSpriteImageDirectiveExtractionMoreDirectives()
    {
        final String spriteDirective1 = "sprite: sprite; sprite-image-url: url('../sprite.png'); sprite-image-layout: vertical";
        final String spriteDirective2 = "sprite: sprite2; sprite-image-url: url('../sprite2.png'); sprite-image-layout: horizontal";
        final String css = ".test { margin-top: 10px }\n/* some comment */\n" + "/* "
            + spriteDirective1 + " */\n" + ".rule { float: left }\n" + "/*** \t"
            + spriteDirective2 + " \t **/";

        assertEquals(spriteDirective1, SpriteDirectiveOccurrenceCollector
            .extractSpriteImageDirectiveString(css));
    }

    @Test
    public void testSpriteReferenceDirectiveExtraction()
    {
        final String spriteDirective = "sprite-ref: sprite; sprite-alignment: repeat";
        final String css = "background-image: url('../img/img.png'); /** "
            + spriteDirective + " */";

        assertEquals(spriteDirective, SpriteDirectiveOccurrenceCollector
            .extractSpriteReferenceDirectiveString(css));
    }

    @Test
    public void testSpriteReferenceImageUrlExtraction()
    {
        final String spriteDirective = "sprite-ref: sprite; sprite-alignment: repeat";
        final String css = "background-image: url('../img/img.png'); /** "
            + spriteDirective + " */";

        assertEquals("../img/img.png", CssSyntaxUtils.unpackUrl(spriteDirectiveOccurrenceCollector
            .extractSpriteReferenceCssProperty(css).value, null));
    }

    @Test
    public void testSpriteReferenceImageUrlExtractionNoBackgroundImage()
    {
        final String spriteDirective = "sprite-ref: sprite; sprite-alignment: repeat";
        final String css = "background-imagez: url('../img/img.png'); /** "
            + spriteDirective + " */";

        assertEquals(null, spriteDirectiveOccurrenceCollector
            .extractSpriteReferenceCssProperty(css));

        assertThat(messages)
            .isEquivalentTo(
                new Message(
                    Message.MessageLevel.WARN,
                    Message.MessageType.NO_BACKGROUND_IMAGE_RULE_NEXT_TO_SPRITE_REFERENCE_DIRECTIVE,
                    null, 0, css));
    }

    @Test
    public void testSpriteReferenceImageUrlExtractionMoreRules()
    {
        final String spriteDirective = "sprite-ref: sprite; sprite-alignment: repeat";
        final String css = "color: red; background-image: url('../img/img.png'); /** "
            + spriteDirective + " */";

        assertEquals(null, spriteDirectiveOccurrenceCollector
            .extractSpriteReferenceCssProperty(css));

        assertThat(messages)
            .isEquivalentTo(
                new Message(
                    Message.MessageLevel.WARN,
                    Message.MessageType.MORE_THAN_ONE_RULE_NEXT_TO_SPRITE_REFERENCE_DIRECTIVE,
                    null, 0, css));
    }
}
TOP

Related Classes of org.carrot2.labs.smartsprites.SpriteDirectiveOccurrenceCollectorTest

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.