X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Furls%2FUrlLinkTableModelTest.java;h=ab190ef46d7ccc4c5624cad576ed4abb39b816e1;hb=08f7a2be3977da8704dd4751de7245bcc6fc41c3;hp=1304d1a17841d0d2832aa94364e4efdf863d80c3;hpb=ab658ca1052ede3491f4bf93630103a7c82776dc;p=jalview.git diff --git a/test/jalview/urls/UrlLinkTableModelTest.java b/test/jalview/urls/UrlLinkTableModelTest.java index 1304d1a..ab190ef 100644 --- a/test/jalview/urls/UrlLinkTableModelTest.java +++ b/test/jalview/urls/UrlLinkTableModelTest.java @@ -25,6 +25,7 @@ import static jalview.util.UrlConstants.DELIM; import static jalview.util.UrlConstants.SEP; import static jalview.util.UrlConstants.SEQUENCE_ID; +import jalview.urls.api.UrlProviderI; import jalview.util.MessageManager; import java.io.BufferedWriter; @@ -51,8 +52,7 @@ public class UrlLinkTableModelTest { private static final String notinmenu = "Not1|http://not.in.menu/$DB_ACCESSION$|" + "Not2|http://not.in.menu.either/$DB_ACCESSION$"; - // Test identifiers.org download file - private static final String testIdOrgString = "[{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\"," + private static final String testIdOrgString = "{\"Local\": [{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\"," + "\"definition\":\"Chemical Entities of Biological Interest (ChEBI)\",\"prefix\":\"chebi\"," + "\"url\":\"http://identifiers.org/chebi\"},{\"id\":\"MIR:00000005\",\"name\":\"UniProt Knowledgebase\"," + "\"pattern\":\"^([A-N,R-Z][0-9]([A-Z][A-Z, 0-9][A-Z, 0-9][0-9]){1,2})|([O,P,Q][0-9][A-Z, 0-9][A-Z, 0-9][A-Z, 0-9][0-9])(\\.\\d+)?$\"," @@ -60,7 +60,7 @@ public class UrlLinkTableModelTest { + "{\"id\":\"MIR:00000011\",\"name\":\"InterPro\",\"pattern\":\"^IPR\\d{6}$\",\"definition\":\"InterPro\",\"prefix\":\"interpro\"," + "\"url\":\"http://identifiers.org/interpro\"}," + "{\"id\":\"MIR:00000372\",\"name\":\"ENA\",\"pattern\":\"^[A-Z]+[0-9]+(\\.\\d+)?$\",\"definition\":\"The European Nucleotide Archive (ENA),\"" - + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]"; + + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]}"; private UrlProviderI prov; @@ -104,8 +104,9 @@ public class UrlLinkTableModelTest { @Test(groups = { "Functional" }) public void testInitialisation() { - int defaultCol = 3; - int nameCol = 0; + int defaultCol = 4; + int dbCol = 0; + int descCol = 1; UrlLinkTableModel m = new UrlLinkTableModel(prov); @@ -123,8 +124,11 @@ public class UrlLinkTableModelTest { if (isDefault) { count++; - String defaultName = (String) m.getValueAt(row, nameCol); - Assert.assertEquals(defaultName, "TEST2"); + String defaultDBName = (String) m.getValueAt(row, dbCol); + Assert.assertEquals(defaultDBName, "TEST2"); + + String defaultDesc = (String) m.getValueAt(row, descCol); + Assert.assertEquals(defaultDesc, "TEST2"); } } Assert.assertEquals(count, 1); @@ -139,7 +143,7 @@ public class UrlLinkTableModelTest { UrlLinkTableModel m = new UrlLinkTableModel(prov); // correct numbers of column and rows - Assert.assertEquals(m.getColumnCount(), 4); + Assert.assertEquals(m.getColumnCount(), 5); Assert.assertEquals(m.getRowCount(), 10); } @@ -153,19 +157,22 @@ public class UrlLinkTableModelTest { // check column names Assert.assertEquals(m.getColumnName(0), - MessageManager.formatMessage("label.name")); + MessageManager.formatMessage("label.database")); Assert.assertEquals(m.getColumnName(1), - MessageManager.formatMessage("label.url")); + MessageManager.formatMessage("label.name")); Assert.assertEquals(m.getColumnName(2), - MessageManager.formatMessage("label.inmenu")); + MessageManager.formatMessage("label.url")); Assert.assertEquals(m.getColumnName(3), - MessageManager.formatMessage("label.default")); + MessageManager.formatMessage("label.inmenu")); + Assert.assertEquals(m.getColumnName(4), + MessageManager.formatMessage("label.primary")); // check column classes Assert.assertEquals(m.getColumnClass(0), String.class); Assert.assertEquals(m.getColumnClass(1), String.class); - Assert.assertEquals(m.getColumnClass(2), Boolean.class); + Assert.assertEquals(m.getColumnClass(2), String.class); Assert.assertEquals(m.getColumnClass(3), Boolean.class); + Assert.assertEquals(m.getColumnClass(4), Boolean.class); } /* @@ -180,9 +187,10 @@ public class UrlLinkTableModelTest { // check table has new row inserted Assert.assertEquals(m.getValueAt(10, 0), "newname"); - Assert.assertEquals(m.getValueAt(10, 1), "newurl"); - Assert.assertEquals(m.getValueAt(10, 2), true); - Assert.assertEquals(m.getValueAt(10, 3), false); + Assert.assertEquals(m.getValueAt(10, 1), "newname"); + Assert.assertEquals(m.getValueAt(10, 2), "newurl"); + Assert.assertEquals(m.getValueAt(10, 3), true); + Assert.assertEquals(m.getValueAt(10, 4), false); // check data source has new row insrte Assert.assertTrue(prov.getLinksForMenu().contains( @@ -230,22 +238,29 @@ public class UrlLinkTableModelTest { } // set new values, one in each row - m.setValueAt("namechanged", 6, 0); - m.setValueAt("urlchanged", 7, 1); - m.setValueAt(false, 8, 2); - m.setValueAt(true, 6, 3); + m.setValueAt("dbnamechanged", 6, 0); + m.setValueAt("descchanged", 6, 1); + m.setValueAt("urlchanged", 7, 2); + m.setValueAt(false, 8, 3); + m.setValueAt(true, 6, 4); + + m.setValueAt("dbnamechanged", 5, 0); // check values updated in table - Assert.assertEquals(m.getValueAt(6, 0), "namechanged"); - Assert.assertEquals(m.getValueAt(7, 1), "urlchanged"); - Assert.assertFalse((boolean) m.getValueAt(8, 2)); - Assert.assertTrue((boolean) m.getValueAt(6, 3)); - Assert.assertFalse((boolean) m.getValueAt(olddefault, 3)); + Assert.assertEquals(m.getValueAt(6, 0), "descchanged"); // custom url can't + // change db name + Assert.assertEquals(m.getValueAt(6, 1), "descchanged"); + Assert.assertEquals(m.getValueAt(7, 2), "urlchanged"); + Assert.assertFalse((boolean) m.getValueAt(8, 3)); + Assert.assertTrue((boolean) m.getValueAt(6, 4)); + Assert.assertFalse((boolean) m.getValueAt(olddefault, 4)); + + Assert.assertEquals(m.getValueAt(5, 0), "dbnamechanged"); // check default row is exactly one row still for (int row = 0; row < m.getRowCount(); row++) { - isDefault = (boolean) m.getValueAt(row, 3); + isDefault = (boolean) m.getValueAt(row, 4); // if isDefault is true, row is 9 // if isDefault is false, row is not 9 @@ -253,13 +268,14 @@ public class UrlLinkTableModelTest { } // check table updated - Assert.assertTrue(prov.writeUrlsAsString(true).contains("namechanged" +SEP + m.getValueAt(6, 1))); - Assert.assertTrue(prov.writeUrlsAsString(true).contains(m.getValueAt(7,0) + SEP + "urlchanged")); + Assert.assertTrue(prov.writeUrlsAsString(true).contains( + "descchanged" + SEP + m.getValueAt(6, 2))); + Assert.assertTrue(prov.writeUrlsAsString(true).contains( + m.getValueAt(7, 1) + SEP + "urlchanged")); Assert.assertTrue(prov.writeUrlsAsString(false).contains( - (String) m.getValueAt(8, 0))); - Assert.assertEquals(prov.getDefaultUrl("seqid"), m.getValueAt(6, 1) + (String) m.getValueAt(8, 1))); + Assert.assertEquals(prov.getPrimaryUrl("seqid"), m.getValueAt(6, 2) .toString().replace(DELIM + SEQUENCE_ID + DELIM, "seqid")); - } /* @@ -274,15 +290,58 @@ public class UrlLinkTableModelTest { { Assert.assertFalse(m.isCellEditable(row, 0)); Assert.assertFalse(m.isCellEditable(row, 1)); - Assert.assertTrue(m.isCellEditable(row, 2)); + Assert.assertFalse(m.isCellEditable(row, 2)); + Assert.assertTrue(m.isCellEditable(row, 3)); if ((row == 4) || (row == 6) || (row == 7)) { - Assert.assertTrue(m.isCellEditable(row, 3)); + Assert.assertTrue(m.isCellEditable(row, 4)); + } + else + { + Assert.assertFalse(m.isCellEditable(row, 4)); + } + } + } + + /* + * Test row 'deletability' + */ + @Test(groups = { "Functional" }) + public void testDeletable() + { + UrlLinkTableModel m = new UrlLinkTableModel(prov); + + for (int row = 0; row < m.getRowCount(); row++) + { + if (row > 4) + { + Assert.assertTrue(m.isRowDeletable(row)); + } + else + { + Assert.assertFalse(m.isRowDeletable(row)); + } + } + } + + /* + * Test indirect row editability + */ + @Test(groups = { "Functional" }) + public void testRowEditable() + { + UrlLinkTableModel m = new UrlLinkTableModel(prov); + + for (int row = 0; row < m.getRowCount(); row++) + { + if (row > 3) + { + Assert.assertTrue(m.isRowEditable(row)); } else { - Assert.assertFalse(m.isCellEditable(row, 3)); + Assert.assertFalse(m.isRowEditable(row)); } } }