JAL-1270 use test properties file
[jalview.git] / test / jalview / gui / AnnotationChooserTest.java
index 944ab9c..6621a94 100644 (file)
@@ -1,8 +1,31 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview 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 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.gui;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.bin.Cache;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
@@ -23,8 +46,8 @@ import java.util.List;
 import javax.swing.JButton;
 import javax.swing.JPanel;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
 /**
  * Unit tests for AnnotationChooser
@@ -49,9 +72,20 @@ public class AnnotationChooserTest
 
   AlignFrame af;
 
-  @Before
+  @BeforeMethod(alwaysRun = true)
   public void setUp() throws IOException
   {
+    Cache.loadProperties("test/jalview/io/testProps.jvprops");
+    // pin down annotation sort order for test
+    Cache.applicationProperties.setProperty(Preferences.SORT_ANNOTATIONS,
+            SequenceAnnotationOrder.NONE.name());
+    final String TRUE = Boolean.TRUE.toString();
+    Cache.applicationProperties.setProperty(
+            Preferences.SHOW_AUTOCALC_ABOVE, TRUE);
+    Cache.applicationProperties.setProperty("SHOW_QUALITY", TRUE);
+    Cache.applicationProperties.setProperty("SHOW_CONSERVATION", TRUE);
+    Cache.applicationProperties.setProperty("SHOW_IDENTITY", TRUE);
+
     AlignmentI al = new jalview.io.FormatAdapter().readFile(TEST_DATA,
             AppletFormatAdapter.PASTE, "FASTA");
     af = new AlignFrame(al, 700, 500);
@@ -72,8 +106,7 @@ public class AnnotationChooserTest
   private void addAnnotations()
   {
     Annotation an = new Annotation(2f);
-    Annotation[] anns = new Annotation[]
-    { an, an, an };
+    Annotation[] anns = new Annotation[] { an, an, an };
     AlignmentAnnotation ann0 = new AlignmentAnnotation("IUPRED", "", anns);
     AlignmentAnnotation ann1 = new AlignmentAnnotation("Beauty", "", anns);
     AlignmentAnnotation ann2 = new AlignmentAnnotation("JMol", "", anns);
@@ -94,7 +127,7 @@ public class AnnotationChooserTest
   /**
    * Test creation of panel with OK and Cancel buttons
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testBuildActionButtonsPanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -123,7 +156,7 @@ public class AnnotationChooserTest
    * Test 'Apply to' has 3 radio buttons enabled, 'Selected Sequences' selected,
    * when there is a current selection group.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testBuildApplyToOptionsPanel_withSelectionGroup()
   {
     selectSequences(0, 2, 3);
@@ -170,7 +203,7 @@ public class AnnotationChooserTest
    * Test 'Apply to' has 1 radio button enabled, 'All Sequences' selected, when
    * there is no current selection group.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testBuildApplyToOptionsPanel_noSelectionGroup()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -211,7 +244,7 @@ public class AnnotationChooserTest
   /**
    * Test Show and Hide radio buttons created, with Hide initially selected.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testBuildShowHidePanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -249,7 +282,7 @@ public class AnnotationChooserTest
   /**
    * Test construction of panel containing two sub-panels
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testBuildShowHideOptionsPanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -266,7 +299,7 @@ public class AnnotationChooserTest
    * Test that annotation types are (uniquely) identified.
    * 
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testGetAnnotationTypes()
   {
     selectSequences(1);
@@ -298,7 +331,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set hidden. Other annotations
    * should be left visible.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testSelectType_hideForAll()
   {
     selectSequences(1, 2);
@@ -334,7 +367,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set hidden. Other annotations should be left visible.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testSelectType_hideForSelected()
   {
     selectSequences(1, 2);
@@ -371,7 +404,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set visible. Other annotations
    * should be left unchanged.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testDeselectType_hideForAll()
   {
     selectSequences(1, 2);
@@ -413,7 +446,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set visible. Other annotations should be left unchanged.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testDeselectType_hideForSelected()
   {
     selectSequences(1, 2);
@@ -448,7 +481,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set visible. Other annotations
    * should be left unchanged
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testSelectType_showForAll()
   {
     selectSequences(1, 2);
@@ -487,9 +520,10 @@ public class AnnotationChooserTest
    * We expect all annotations of that type, linked to the sequence group, to be
    * set visible. Other annotations should be left unchanged
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testSelectType_showForSelected()
   {
+    // sequences 1 and 2 have annotations IUPred and Jmol
     selectSequences(1, 2);
     testee = new AnnotationChooser(parentPanel);
     final Checkbox showCheckbox = (Checkbox) getComponent(testee, 1, 0, 0);
@@ -505,6 +539,7 @@ public class AnnotationChooserTest
     setSelected(selectedSequencesCheckbox, true);
     setSelected(hideCheckbox, true);
     setSelected(getTypeCheckbox("JMol"), true);
+
     assertTrue(anns[5].visible); // JMol for seq3
     assertFalse(anns[7].visible); // JMol for seq1
     // ...now show them...
@@ -527,7 +562,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set hidden. Other annotations
    * should be left unchanged.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testDeselectType_showForAll()
   {
     selectSequences(1, 2);
@@ -568,7 +603,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set hidden. Other annotations should be left unchanged.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testDeselectType_showForSelected()
   {
     selectSequences(1, 2);
@@ -662,7 +697,7 @@ public class AnnotationChooserTest
    * Test cases include sequences in the selection group, and others not in the
    * group.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testIsInActionScope_selectedScope()
   {
     // sequences 1 and 2 have annotations 4 and 3 respectively
@@ -688,7 +723,7 @@ public class AnnotationChooserTest
    * Test cases include sequences in the selection group, and others not in the
    * group.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testIsInActionScope_unselectedScope()
   {
     // sequences 1 and 2 have annotations 4 and 3 respectively
@@ -712,7 +747,7 @@ public class AnnotationChooserTest
   /**
    * Test that the reset method restores previous visibility flags.
    */
-  @Test
+  @Test(groups = { "Functional" })
   public void testResetOriginalState()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -725,6 +760,9 @@ public class AnnotationChooserTest
       assertTrue(i + "'th sequence not visible", anns[i].visible);
     }
 
+    /*
+     * check options to hide JMol and IUPRED annotations for all sequences
+     */
     final Checkbox hideCheckbox = (Checkbox) getComponent(testee, 1, 0, 1);
     setSelected(hideCheckbox, true);