JAL-2316 Added database name column to URL links table in preferences
[jalview.git] / test / jalview / urls / UrlLinkDisplayTest.java
1 package jalview.urls;
2
3 import jalview.util.UrlLink;
4
5 import java.util.List;
6
7 import org.testng.Assert;
8 import org.testng.annotations.Test;
9
10 public class UrlLinkDisplayTest {
11
12   @Test(groups = { "Functional" })
13   public void testDisplayColumnNames()
14   {
15     // 5 column names returned although 6 names internal to UrlLinkDisplay
16     List<String> names = UrlLinkDisplay.getDisplayColumnNames();
17     Assert.assertEquals(names.size(), 5);
18   }
19
20   @Test(groups = { "Functional" })
21   public void getValue()
22   {
23     UrlLink link = new UrlLink("Test Url",
24             "http://identifiers.org/$DB_ACCESSION$",
25  "TestName");
26     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
27
28     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.PRIMARY));
29     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "Test");
30     Assert.assertEquals(u.getValue(UrlLinkDisplay.DATABASE), "Test Url");
31     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME),
32  "TestName");
33     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.SELECTED));
34     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
35             "http://identifiers.org/$DB_ACCESSION$");
36   }
37
38   @Test(groups = { "Functional" })
39   public void testIsEditable()
40   {
41     // only default and selected columns are editable ever
42     // default only editable if link contains $SEQUENCE_ID$
43
44     UrlLink link = new UrlLink("Test Url",
45             "http://identifiers.org/$DB_ACCESSION$",
46  "TestName");
47     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
48
49     Assert.assertFalse(u.isEditable(UrlLinkDisplay.PRIMARY));
50     Assert.assertTrue(u.isEditable(UrlLinkDisplay.SELECTED));
51     Assert.assertFalse(u.isEditable(UrlLinkDisplay.ID));
52     Assert.assertFalse(u.isEditable(UrlLinkDisplay.URL));
53     Assert.assertFalse(u.isEditable(UrlLinkDisplay.NAME));
54     Assert.assertFalse(u.isEditable(UrlLinkDisplay.DATABASE));
55
56     UrlLink vlink = new UrlLink("Test Sequence ID Url",
57             "http://myurl/$SEQUENCE_ID$", "TestName");
58     UrlLinkDisplay v = new UrlLinkDisplay("Test", vlink, false, false);
59
60     Assert.assertTrue(v.isEditable(UrlLinkDisplay.PRIMARY));
61     Assert.assertTrue(v.isEditable(UrlLinkDisplay.SELECTED));
62     Assert.assertFalse(v.isEditable(UrlLinkDisplay.ID));
63     Assert.assertFalse(v.isEditable(UrlLinkDisplay.URL));
64     Assert.assertFalse(v.isEditable(UrlLinkDisplay.NAME));
65     Assert.assertFalse(v.isEditable(UrlLinkDisplay.DATABASE));
66   }
67
68   @Test(groups = { "Functional" })
69   public void testName()
70   {
71     UrlLink link = new UrlLink("Test Url",
72             "http://identifiers.org/$DB_ACCESSION$",
73  "TestName");
74     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
75
76     // Name initially as input in link
77     Assert.assertEquals(u.getName(), "Test Url");
78
79     // Setting updates name
80     u.setName("New Name");
81     Assert.assertEquals(u.getName(), "New Name");
82   }
83
84   @Test(groups = { "Functional" })
85   public void testDescription()
86   {
87     UrlLink link = new UrlLink("Test Url",
88             "http://identifiers.org/$DB_ACCESSION$",
89  "TestName");
90     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
91
92     // Desc initially as input in link
93     Assert.assertEquals(u.getDBName(), "TestName");
94
95     // Setting updates name
96     u.setDescription("New Desc");
97     Assert.assertEquals(u.getDBName(), "New Desc");
98   }
99
100   @Test(groups = { "Functional" })
101   public void testUrl()
102   {
103     UrlLink link = new UrlLink("Test Url",
104             "http://identifiers.org/$DB_ACCESSION$",
105  "TestName");
106     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
107
108     // Url initially as input in link
109     Assert.assertEquals(u.getUrl(), "http://identifiers.org/$DB_ACCESSION$");
110
111     // Setting updates url
112     u.setUrl("http://something.new/$SEQUENCE_ID$");
113     Assert.assertEquals(u.getUrl(), "http://something.new/$SEQUENCE_ID$");
114   }
115
116   @Test(groups = { "Functional" })
117   public void testGetSetValue()
118   {
119     UrlLink link = new UrlLink("Test Url",
120             "http://identifiers.org/$DB_ACCESSION$",
121  "TestName");
122     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
123
124     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.PRIMARY));
125     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.SELECTED));
126     Assert.assertEquals(u.getValue(UrlLinkDisplay.DATABASE), "Test Url");
127     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME),
128  "TestName");
129     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "Test");
130     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
131             "http://identifiers.org/$DB_ACCESSION$");
132
133     u.setValue(UrlLinkDisplay.PRIMARY, true);
134     Assert.assertTrue((boolean) u.getValue(UrlLinkDisplay.PRIMARY));
135
136     u.setValue(UrlLinkDisplay.SELECTED, true);
137     Assert.assertTrue((boolean) u.getValue(UrlLinkDisplay.SELECTED));
138
139     u.setValue(UrlLinkDisplay.NAME, "New Desc");
140     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME), "New Desc");
141
142     u.setValue(UrlLinkDisplay.DATABASE, "New Name");
143     Assert.assertEquals(u.getValue(UrlLinkDisplay.DATABASE), "New Name");
144
145     u.setValue(UrlLinkDisplay.ID, "New ID");
146     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "New ID");
147
148     u.setValue(UrlLinkDisplay.URL, "http://something.new/$SEQUENCE_ID$");
149     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
150             "http://something.new/$SEQUENCE_ID$");
151   }
152 }