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 }