package com.googlecode.mgwt.linker.linker.test; import java.util.Arrays; import java.util.HashSet; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.googlecode.mgwt.linker.linker.ManifestWriter; public class ManifestWriterTest { private ManifestWriter writer; @Before public void setup() throws Exception { writer = new ManifestWriter(); } @Test public void testWriteManifestTestException() { try { writer.writeManifest(null, null); Assert.fail("expected exception did not occur"); } catch (IllegalArgumentException e) { } } @Test public void testWriteManifestTestException1() { try { writer.writeManifest(new HashSet<String>(), null); Assert.fail("expected exception did not occur"); } catch (IllegalArgumentException e) { } } @Test public void testWriteManifestTestException2() { try { writer.writeManifest(null, new HashSet<String>()); Assert.fail("expected exception did not occur"); } catch (IllegalArgumentException e) { } } @Test public void testWriteEmptyManifest() { String manifest = writer.writeManifest(new HashSet<String>(), new HashSet<String>()); List<String> lines = Arrays.asList(manifest.split("\\r?\\n")); Assert.assertEquals(12, lines.size()); Assert.assertEquals("CACHE MANIFEST", lines.get(0)); Assert.assertTrue(lines.get(1).startsWith("# Unique id #")); Assert.assertTrue(lines.contains("CACHE:")); Assert.assertTrue(lines.contains("NETWORK:")); int indexOf = lines.indexOf("NETWORK:"); Assert.assertEquals("*", lines.get(indexOf + 1)); } @Test public void testWriteSmallManifestWithOnlyStaticFiles() { HashSet<String> set = new HashSet<String>(); set.add("a.stuff"); set.add("b.stuff"); String manifest = writer.writeManifest(set, new HashSet<String>()); List<String> lines = Arrays.asList(manifest.split("\\r?\\n")); Assert.assertEquals(14, lines.size()); Assert.assertEquals("CACHE MANIFEST", lines.get(0)); Assert.assertTrue(lines.get(1).startsWith("# Unique id #")); Assert.assertTrue(lines.contains("CACHE:")); int indexOf2 = lines.indexOf("CACHE:"); Assert.assertEquals("a.stuff", lines.get(indexOf2 + 2)); Assert.assertEquals("b.stuff", lines.get(indexOf2 + 3)); Assert.assertTrue(lines.contains("NETWORK:")); int indexOf = lines.indexOf("NETWORK:"); Assert.assertEquals("*", lines.get(indexOf + 1)); } @Test public void testWriteSmallManifestWithOnlyGWTFiles() { HashSet<String> set = new HashSet<String>(); set.add("a.stuff"); set.add("b.stuff"); String manifest = writer.writeManifest(new HashSet<String>(), set); List<String> lines = Arrays.asList(manifest.split("\\r?\\n")); Assert.assertEquals(14, lines.size()); Assert.assertEquals("CACHE MANIFEST", lines.get(0)); Assert.assertTrue(lines.get(1).startsWith("# Unique id #")); Assert.assertTrue(lines.contains("CACHE:")); int indexOf2 = lines.indexOf("CACHE:"); Assert.assertEquals("a.stuff", lines.get(indexOf2 + 4)); Assert.assertEquals("b.stuff", lines.get(indexOf2 + 5)); Assert.assertTrue(lines.contains("NETWORK:")); int indexOf = lines.indexOf("NETWORK:"); Assert.assertEquals("*", lines.get(indexOf + 1)); } }