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