View Javadoc
1   /*
2    * Copyright (c) 2002-2025 Gargoyle Software Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.htmlunit.junit.annotation;
16  
17  import java.lang.annotation.ElementType;
18  import java.lang.annotation.Retention;
19  import java.lang.annotation.RetentionPolicy;
20  import java.lang.annotation.Target;
21  
22  import org.htmlunit.SimpleWebTestCase;
23  import org.htmlunit.WebDriverTestCase;
24  import org.htmlunit.junit.BrowserRunner;
25  
26  /**
27   * Allows to express the expected alerts (i.e. the messages passed to the
28   * window.alert function) for the different browsers for a unit test.
29   * Expected alerts can be retrieved within a unit test with {@link SimpleWebTestCase#getExpectedAlerts()}
30   * (resp. {@link WebDriverTestCase#getExpectedAlerts}) to be compared with the actual alerts but most of the time
31   * utility functions like {@link SimpleWebTestCase#loadPageWithAlerts(String)}
32   * (resp. {@link WebDriverTestCase#loadPageWithAlerts2(String)}) are used which do it
33   * after having loaded the page.
34   *
35   * @author Ahmed Ashour
36   * @author Frank Danek
37   * @author Ronald Brill
38   * @author cd alexndr
39   */
40  @Retention(RetentionPolicy.RUNTIME)
41  @Target(ElementType.METHOD)
42  public @interface Alerts {
43  
44      /**
45       * Alerts that is used for all browsers (if defined, the other values are ignored).
46       * @return the alerts
47       */
48      String[] value() default { BrowserRunner.EMPTY_DEFAULT };
49  
50      /**
51       * Alerts for latest Edge.
52       * @return the alerts
53       */
54      String[] EDGE() default { BrowserRunner.EMPTY_DEFAULT };
55  
56      /**
57       * Alerts for latest Firefox.
58       * @return the alerts
59       */
60      String[] FF() default { BrowserRunner.EMPTY_DEFAULT };
61  
62      /**
63       * Alerts for Firefox ESR.
64       * @return the alerts
65       */
66      String[] FF_ESR() default { BrowserRunner.EMPTY_DEFAULT };
67  
68      /**
69       * Alerts for latest Chrome.
70       * @return the alerts
71       */
72      String[] CHROME() default { BrowserRunner.EMPTY_DEFAULT };
73  
74      /**
75       * The default alerts, if nothing more specific is defined.
76       * @return the alerts
77       */
78      String[] DEFAULT() default { BrowserRunner.EMPTY_DEFAULT };
79  }