<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -40,12 +40,14 @@ class AlertTest(TestCommon, unittest.TestCase):
     Tests to see if an accessible with an 'alert' role is in the document'''
     base_url = &quot;http://codetalks.org/&quot;
     path = &quot;/source/widgets/alert/alert.html&quot;
+    _failed_asserts = []
 
-    def _wait_for_alert_show(self, focus):
+
+    def _wait_for_alert_show(self, subtest ,focus):
         events = [
             '&lt;event type=&quot;object-add&quot;&gt;'
             '&lt;source&gt;&lt;accessible role=&quot;alert&quot;/&gt;'
-            '&lt;/source&gt;&lt;/event&gt;', 
+            '&lt;/source&gt;&lt;/event&gt;',
             '&lt;event type=&quot;system-alert&quot;&gt;'
             '&lt;source&gt;&lt;accessible role=&quot;alert&quot;/&gt;'
             '&lt;/source&gt;&lt;/event&gt;']
@@ -56,57 +58,94 @@ class AlertTest(TestCommon, unittest.TestCase):
                           '&lt;/source&gt;&lt;/event&gt;')
         
         got_events = self.selenium.wait_accessible_events(events)
-        self.failUnless(len(got_events) == len(events), 
-                        'Expected:\n%s\nGot:\n%s\n' % ('\n'.join(events),
-                                                       '\n'.join(got_events)))
+        try:
+            self.failUnless(len(got_events) == len(events), 
+                            'Did not get the right events for &quot;%s&quot;\n'
+                            'Expected:\n%s\nGot:\n%s\n' % (subtest,
+                                                           '\n'.join(events),
+                                                           '\n'.join(got_events)))
+        except AssertionError, e:
+            self._failed_asserts.append(e)
 
-    def _assert_no_alert_showing(self):
-        self.assertEqual(
-            self.selenium.get_accessible_match(
-                '&lt;accessible role=&quot;alert&quot; state=&quot;regexp:^((?!invisible).)*$&quot; /&gt;'), '')
+    def _assert_no_alert_showing(self, subtest):
+        try:
+            self.assertEqual(
+                self.selenium.get_accessible_match(
+                    '&lt;accessible role=&quot;alert&quot; state=&quot;regexp:.*focusable.*&quot; /&gt;'), 
+                '', 'Found unexpected focusable &quot;alert&quot; accessible in &quot;%s&quot; test' % subtest)
+        except AssertionError, e:
+            self._failed_asserts.append(e)
         
         
-    def _assert_alert_showing(self):
-        self.assertNotEqual(
-            self.selenium.get_accessible_match(
-                '&lt;accessible role=&quot;alert&quot; state=&quot;regexp:^((?!invisible).)*$&quot; /&gt;'), '')
+    def _assert_alert_showing(self, subtest):
+        try:
+            self.assertNotEqual(
+                self.selenium.get_accessible_match(
+                    '&lt;accessible role=&quot;alert&quot; state=&quot;regexp:.*focusable.*&quot; /&gt;'), 
+                '', 
+                'Failed to find focusable &quot;alert&quot; accessible in &quot;%s&quot; test' % subtest)
+        except AssertionError, e:
+            self._failed_asserts.append(e)
         
 
     def runTest(self):
         sel = self.selenium
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing('')
+
+        # Create and Focus
+        subtest = 'Create and Focus'
         sel.click(&quot;//button[@onclick='createRemoveAlert(FOCUS_TEXT, true);']&quot;)
-        self._wait_for_alert_show(True)
-        self._assert_alert_showing()
+        self._wait_for_alert_show(subtest, True)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;//a[@onclick='createRemoveAlert();']&quot;)
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing(subtest)
+
+        # Create - no Focus
+        subtest = 'Create - no Focus'
         sel.click(&quot;//button[@onclick='createRemoveAlert(NOFOCUS_TEXT, false);']&quot;)
-        self._wait_for_alert_show(False)
-        self._assert_alert_showing()
+        self._wait_for_alert_show(subtest, False)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;//a[@onclick='createRemoveAlert();']&quot;)
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing(subtest)
+
+        # Show (via visibility style) and Focus
+        subtest = 'Show (via visibility style) and Focus'
         sel.click(&quot;//button[@onclick=\&quot;toggleAlert('alertVis', true);\&quot;]&quot;)
-#        self._wait_for_alert_show(True)
-        self._assert_alert_showing()
-        a = sel.get_accessible_doc()
+        self._wait_for_alert_show(subtest, True)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;link=close&quot;)
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing(subtest)
+
+
+        # Show (via visibility style) - no Focus
+        subtest = 'Show (via visibility style) - no Focus'
         sel.click(&quot;//button[@onclick=\&quot;toggleAlert('alertVis');\&quot;]&quot;)
-        self._wait_for_alert_show(False)
-        self._assert_alert_showing()
+        self._wait_for_alert_show(subtest, False)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;link=close&quot;)
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing(subtest)
+
+        # Show (via display style) and Focus
+        subtest = 'Show (via display style) and Focus'
         sel.click(&quot;//button[@onclick=\&quot;toggleAlert('alertDisp', true);\&quot;]&quot;)
-#        self._wait_for_alert_show(True)
-        self._assert_alert_showing()
+        self._wait_for_alert_show(subtest, True)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;//div[@id='alertDisp']/div/a&quot;)
-        self._assert_no_alert_showing()
+        self._assert_no_alert_showing(subtest)
+
+        # Show (via display style) - no Focus
+        subtest = 'Show (via display style) - no Focus'
         sel.click(&quot;//button[@onclick=\&quot;toggleAlert('alertDisp');\&quot;]&quot;)
-        self._wait_for_alert_show(False)
-        self._assert_alert_showing()
+        self._wait_for_alert_show(subtest, False)
+        self._assert_alert_showing(subtest)
         sel.click(&quot;//div[@id='alertDisp']/div/a&quot;)
-        self._assert_no_alert_showing()
-        #self.failUnless(result)
+        self._assert_no_alert_showing(subtest)
+
+        # Fail if we had any assertion failures.
+        self.failUnless(
+            self._failed_asserts == [],
+            'Failed assertions:\n%s' \
+                % '\n'.join(map(str, self._failed_asserts)))
     
 #if __name__ == &quot;__main__&quot;:
 #    unittest.main()</diff>
      <filename>tests/alert_test.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ec4552589c29331aa5d3449dce754fc24631ca54</id>
    </parent>
  </parents>
  <author>
    <name>Eitan Isaacson</name>
    <email>eitan@ascender.com</email>
  </author>
  <url>http://github.com/eeejay/specular/commit/16bc857fb79a5e003b5198b26d9a91f749c28ea5</url>
  <id>16bc857fb79a5e003b5198b26d9a91f749c28ea5</id>
  <committed-date>2008-10-16T13:03:32-07:00</committed-date>
  <authored-date>2008-10-16T13:03:32-07:00</authored-date>
  <message>Yet another refactor. Carry out the test and show all failed
assertions at the end.</message>
  <tree>9b21028801c6702ffe9fc460467aa8ce05bdac4c</tree>
  <committer>
    <name>Eitan Isaacson</name>
    <email>eitan@ascender.com</email>
  </committer>
</commit>
