/** * Copyright 2014 55 Minutes (http://www.55minutes.com) * * 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. */ package fiftyfive.wicket.css; import fiftyfive.wicket.resource.MergedResourceBuilderTest; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.resource.PackageResourceReference; import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.util.tester.WicketTester; import org.junit.Test; public class MergedCssBuilderTest extends MergedResourceBuilderTest { static final ResourceReference CSS_1 = new PackageResourceReference( MergedCssBuilderTest.class, "1.css" ); static final ResourceReference CSS_2 = new PackageResourceReference( MergedCssBuilderTest.class, "2.css" ); static final ResourceReference CSS_PRINT_1 = new PackageResourceReference( MergedCssBuilderTest.class, "1-print.css" ); static final ResourceReference CSS_PRINT_2 = new PackageResourceReference( MergedCssBuilderTest.class, "2-print.css" ); /** * Verify that the test page renders as expected (i.e. with merged resource * href and src attributes). */ @Test public void testRender() throws Exception { WicketTester tester = doRender(MergedCssBuilderTestPage.class); tester.assertResultPage( MergedCssBuilderTestPage.class, "MergedCssBuilderTestPage-expected.html" ); } /** * Verify that merged resources can be successfully downloaded. */ @Test public void testMergedResourcesCanBeDownloaded() throws Exception { WicketTester tester = doRender(MergedCssBuilderTestPage.class); assertDownloaded(tester, "static/styles.css", "1.css", "2.css"); assertDownloaded(tester, "static/styles-print.css", "1-print.css", "2-print.css"); } /** * Verify that an exception is thrown if we execute install() without * specifying a path first. */ @Test(expected=IllegalStateException.class) public void testMissingPathThrowsException() { MergedCssBuilder b = new MergedCssBuilder(); b.addCss(getClass(), "1.css"); b.install(new WicketTester().getApplication()); } /** * Verify that an exception is thrown if we execute install() without * specifying a resource first. */ @Test(expected=IllegalStateException.class) public void testMissingResourceThrowsException() { MergedCssBuilder b = new MergedCssBuilder(); b.setPath("/styles/all.css"); b.install(new WicketTester().getApplication()); } protected void onAppInit(WebApplication app) { new MergedCssBuilder().setPath("/static/styles.css") .addCss(CSS_1) .addCss(CSS_2) .install(app); new MergedCssBuilder().setPath("/static/styles-print.css") .addCss(CSS_PRINT_1) .addCss(CSS_PRINT_2) .install(app); } }