/hg/icedtea-web: Unit test for InformationDesc

omajid at icedtea.classpath.org omajid at icedtea.classpath.org
Fri Sep 20 08:42:25 PDT 2013


changeset a5e65b8ac54c in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a5e65b8ac54c
author: Omair Majid <omajid at redhat.com>
date: Fri Sep 20 11:41:36 2013 -0400

	Unit test for InformationDesc

	Also remove the references to JNLPFile from InformationDesc.
	This makes it much easier to instantiate InformationDesc for
	tests.


diffstat:

 ChangeLog                                                     |   11 +
 netx/net/sourceforge/jnlp/InformationDesc.java                |   15 +-
 netx/net/sourceforge/jnlp/JNLPFile.java                       |    2 +-
 netx/net/sourceforge/jnlp/Parser.java                         |    2 +-
 tests/netx/unit/net/sourceforge/jnlp/InformationDescTest.java |  209 ++++++++++
 5 files changed, 225 insertions(+), 14 deletions(-)

diffs (300 lines):

diff -r 259e569a407d -r a5e65b8ac54c ChangeLog
--- a/ChangeLog	Thu Sep 19 13:36:15 2013 +0200
+++ b/ChangeLog	Fri Sep 20 11:41:36 2013 -0400
@@ -1,3 +1,14 @@
+2013-09-20  Omair Majid  <omajid at redhat.com>
+
+	* netx/net/sourceforge/jnlp/InformationDesc.java
+	(InformationDesc): Remove JNLPFile argument.
+	(getJNLPFile): Remove.
+	* netx/net/sourceforge/jnlp/JNLPFile.java
+	(getInformation): Adjust to new InformationDesc constructor.
+	* netx/net/sourceforge/jnlp/Parser.java
+	(getInformation): Likewise.
+	* tests/netx/unit/net/sourceforge/jnlp/InformationDescTest.java: New file.
+
 2013-09-19  Jana Fabrikova  <jfabriko at redhat.com>
 
 	Added text only reports from reproducers and unit tests run
diff -r 259e569a407d -r a5e65b8ac54c netx/net/sourceforge/jnlp/InformationDesc.java
--- a/netx/net/sourceforge/jnlp/InformationDesc.java	Thu Sep 19 13:36:15 2013 +0200
+++ b/netx/net/sourceforge/jnlp/InformationDesc.java	Fri Sep 20 11:41:36 2013 -0400
@@ -52,17 +52,13 @@
     /** the data as list of key,value pairs */
     private List<Object> info;
 
-    /** the JNLPFile this information is for */
-    private JNLPFile jnlpFile;
 
     /**
      * Create an information element object.
      *
-     * @param jnlpFile file that the information is for
      * @param locales the locales the information is for
      */
-    public InformationDesc(JNLPFile jnlpFile, Locale locales[]) {
-        this.jnlpFile = jnlpFile;
+    public InformationDesc(Locale locales[]) {
         this.locales = locales;
     }
 
@@ -171,6 +167,8 @@
             }
         }
 
+        // FIXME if there's no larger icon, choose the closest smaller icon
+        // instead of the first
         if (best == null)
             best = icons[0];
 
@@ -185,13 +183,6 @@
     }
 
     /**
-     * Returns the JNLPFile the information is for.
-     */
-    public JNLPFile getJNLPFile() {
-        return jnlpFile;
-    }
-
-    /**
      * Returns whether offline execution allowed.
      */
     public boolean isOfflineAllowed() {
diff -r 259e569a407d -r a5e65b8ac54c netx/net/sourceforge/jnlp/JNLPFile.java
--- a/netx/net/sourceforge/jnlp/JNLPFile.java	Thu Sep 19 13:36:15 2013 +0200
+++ b/netx/net/sourceforge/jnlp/JNLPFile.java	Fri Sep 20 11:41:36 2013 -0400
@@ -371,7 +371,7 @@
      * through the specified locale.
      */
     public InformationDesc getInformation(final Locale locale) {
-        return new InformationDesc(this, new Locale[] { locale }) {
+        return new InformationDesc(new Locale[] { locale }) {
             @Override
             protected List<Object> getItems(Object key) {
                 List<Object> result = new ArrayList<Object>();
diff -r 259e569a407d -r a5e65b8ac54c netx/net/sourceforge/jnlp/Parser.java
--- a/netx/net/sourceforge/jnlp/Parser.java	Thu Sep 19 13:36:15 2013 +0200
+++ b/netx/net/sourceforge/jnlp/Parser.java	Fri Sep 20 11:41:36 2013 -0400
@@ -494,7 +494,7 @@
         Locale locales[] = getLocales(node);
 
         // create information
-        InformationDesc info = new InformationDesc(file, locales);
+        InformationDesc info = new InformationDesc(locales);
 
         // step through the elements
         Node child = node.getFirstChild();
diff -r 259e569a407d -r a5e65b8ac54c tests/netx/unit/net/sourceforge/jnlp/InformationDescTest.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/netx/unit/net/sourceforge/jnlp/InformationDescTest.java	Fri Sep 20 11:41:36 2013 -0400
@@ -0,0 +1,209 @@
+/* InformationDescTest.java
+   Copyright (C) 2013 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package net.sourceforge.jnlp;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+
+import org.junit.Test;
+
+public class InformationDescTest {
+
+    @Test
+    public void testLocales() {
+        InformationDesc info;
+
+        info = new InformationDesc(new Locale[0]);
+        assertArrayEquals(new Locale[0], info.getLocales());
+
+        Locale[] someLocales = new Locale[] { Locale.ENGLISH, Locale.FRENCH };
+        info = new InformationDesc(someLocales);
+        assertArrayEquals(someLocales, info.getLocales());
+    }
+
+    @Test
+    public void testTitle() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("title", "A Title");
+        assertEquals("A Title", info.getTitle());
+    }
+
+    @Test
+    public void testVendor() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("vendor", "Some Vendor");
+        assertEquals("Some Vendor", info.getVendor());
+    }
+
+    @Test
+    public void testHomePage() throws MalformedURLException {
+        URL url = new URL("http://some.home.page.example.com");
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("homepage", url);
+        assertEquals(url, info.getHomepage());
+    }
+    @Test
+    public void testDescription() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("description-" + InformationDesc.DEFAULT, "Default Description");
+        assertEquals("Default Description", info.getDescription());
+    }
+
+    @Test
+    public void testDescriptionFallbackOrder() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("description-" + InformationDesc.TOOLTIP, "Tooltip Description");
+        assertEquals("Tooltip Description", info.getDescription());
+        info.addItem("description-" + InformationDesc.SHORT, "Short Description");
+        assertEquals("Short Description", info.getDescription());
+        info.addItem("description-" + InformationDesc.ONE_LINE, "One-line Description");
+        assertEquals("One-line Description", info.getDescription());
+        info.addItem("description-" + InformationDesc.DEFAULT, "Default Description");
+        assertEquals("Default Description", info.getDescription());
+    }
+
+    @Test
+    public void testDescriptionKind() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        info.addItem("description-" + InformationDesc.DEFAULT, "Default Description");
+        info.addItem("description-" + InformationDesc.ONE_LINE, "One-line Description");
+        info.addItem("description-" + InformationDesc.SHORT, "Short Description");
+        info.addItem("description-" + InformationDesc.TOOLTIP, "Tooltip Description");
+
+        assertEquals("Default Description", info.getDescription(InformationDesc.DEFAULT));
+        assertEquals("One-line Description", info.getDescription(InformationDesc.ONE_LINE));
+        assertEquals("Short Description", info.getDescription(InformationDesc.SHORT));
+        assertEquals("Tooltip Description", info.getDescription(InformationDesc.TOOLTIP));
+    }
+
+    @Test
+    public void testGetIcons() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+
+        assertArrayEquals(new IconDesc[0], info.getIcons(IconDesc.DEFAULT));
+
+        IconDesc icon1 = new IconDesc(null, null, -1, -1, -1, -1);
+        IconDesc icon2 = new IconDesc(null, null, -1, -1, -1, -1);
+        info.addItem("icon-" + IconDesc.DEFAULT, icon1);
+        info.addItem("icon-" + IconDesc.DEFAULT, icon2);
+
+        assertArrayEquals(new IconDesc[] { icon1, icon2 }, info.getIcons(IconDesc.DEFAULT));
+    }
+
+    @Test
+    public void testGetIconLocations() throws MalformedURLException {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+
+        URL location1 = new URL("http://location1.example.org");
+        URL location2 = new URL("http://location2.example.org");
+        IconDesc icon1 = new IconDesc(location1, null, 10, 10, -1, -1);
+        IconDesc icon2 = new IconDesc(location2, null, 20, 20, -1, -1);
+        info.addItem("icon-" + IconDesc.DEFAULT, icon1);
+        info.addItem("icon-" + IconDesc.DEFAULT, icon2);
+
+        // exact size matches
+        assertEquals(location1, info.getIconLocation(IconDesc.DEFAULT, 10, 10));
+        assertEquals(location2, info.getIconLocation(IconDesc.DEFAULT, 20, 20));
+
+        // match a bigger icon
+        assertEquals(location1, info.getIconLocation(IconDesc.DEFAULT, 1, 1));
+        assertEquals(location2, info.getIconLocation(IconDesc.DEFAULT, 15, 15));
+
+        // match a smaller icon
+        assertEquals(location1, info.getIconLocation(IconDesc.DEFAULT, 25, 25));
+    }
+
+    @Test
+    public void testIsOfflineAllowed() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        assertFalse(info.isOfflineAllowed());
+        info.addItem("offline-allowed", new Object());
+        assertTrue(info.isOfflineAllowed());
+    }
+
+    @Test
+    public void testIsSharingAllowed() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        assertFalse(info.isSharingAllowed());
+        info.addItem("sharing-allowed", new Object());
+        assertTrue(info.isSharingAllowed());
+    }
+
+    @Test
+    public void testGetShortcut() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+        assertNull(info.getShortcut());
+
+        ShortcutDesc shortcut = new ShortcutDesc(false, false);
+        info.addItem("shortcut", shortcut);
+        assertSame(shortcut, info.getShortcut());
+    }
+
+    @Test
+    public void testGetAssociation() throws ParseException {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+
+        assertArrayEquals(new AssociationDesc[0], info.getAssociations());
+
+        AssociationDesc association = new AssociationDesc(null, null);
+        info.addItem("association", association);
+        assertArrayEquals(new AssociationDesc[] { association }, info.getAssociations());
+    }
+
+    @Test
+    public void testGetRelatedContents() {
+        InformationDesc info = new InformationDesc(new Locale[0]);
+
+        assertArrayEquals(new RelatedContentDesc[0], info.getRelatedContents());
+
+        RelatedContentDesc relatedContent = new RelatedContentDesc(null);
+        info.addItem("related-content", relatedContent);
+
+        assertArrayEquals(new RelatedContentDesc[] { relatedContent }, info.getRelatedContents());
+    }
+
+}



More information about the distro-pkg-dev mailing list