3333import io .github .bonigarcia .wdm .WebDriverManager ;
3434import java .io .IOException ;
3535import java .util .List ;
36- import java .util .Locale ;
3736import java .util .Map ;
3837import java .util .concurrent .atomic .AtomicBoolean ;
3938import java .util .stream .Stream ;
4039import org .hamcrest .Matchers ;
4140import org .junit .jupiter .api .AfterAll ;
4241import org .junit .jupiter .api .AfterEach ;
4342import org .junit .jupiter .api .BeforeAll ;
44- import org .junit .jupiter .api .BeforeEach ;
4543import org .junit .jupiter .api .Disabled ;
4644import org .junit .jupiter .api .Test ;
4745import org .junit .jupiter .params .ParameterizedTest ;
4846import org .junit .jupiter .params .provider .MethodSource ;
4947import org .mockito .ArgumentMatchers ;
5048import org .mockito .quality .Strictness ;
51- import org .parosproxy .paros .Constant ;
5249import org .parosproxy .paros .control .Control ;
5350import org .parosproxy .paros .core .scanner .Alert ;
5451import org .parosproxy .paros .core .scanner .Plugin .AttackStrength ;
6360import org .zaproxy .addon .network .ExtensionNetwork ;
6461import org .zaproxy .zap .extension .ascan .VariantFactory ;
6562import org .zaproxy .zap .extension .selenium .Browser ;
63+ import org .zaproxy .zap .extension .selenium .ExtensionSelenium ;
6664import org .zaproxy .zap .extension .selenium .SeleniumOptions ;
6765import org .zaproxy .zap .model .Context ;
6866import org .zaproxy .zap .testutils .ActiveScannerTestUtils ;
6967import org .zaproxy .zap .testutils .NanoServerHandler ;
70- import org .zaproxy .zap .utils .I18N ;
7168import org .zaproxy .zap .utils .ZapXmlConfiguration ;
7269
7370class DomXssScanRuleUnitTest extends ActiveScannerTestUtils <DomXssScanRule > {
@@ -79,30 +76,10 @@ class DomXssScanRuleUnitTest extends ActiveScannerTestUtils<DomXssScanRule> {
7976
8077 @ BeforeAll
8178 static void setupAll () {
82- Constant .messages = new I18N (Locale .ROOT );
8379 WebDriverManager .firefoxdriver ().setup ();
8480 WebDriverManager .chromedriver ().setup ();
8581 }
8682
87- @ BeforeEach
88- void setupEach () {
89- model = mock (Model .class , withSettings ().strictness (Strictness .LENIENT ));
90- Model .setSingletonForTesting (model );
91- given (model .getVariantFactory ()).willReturn (new VariantFactory ());
92- given (model .getOptionsParam ()).willReturn (new OptionsParam ());
93- extensionNetwork = new ExtensionNetwork ();
94- extensionNetwork .initModel (model );
95- Control .initSingletonForTesting (model , mock (ExtensionLoader .class ));
96- extensionNetwork .init ();
97- extensionNetwork .hook (new ExtensionHook (model , null ));
98-
99- model .getOptionsParam ().load (new ZapXmlConfiguration ());
100- model .getOptionsParam ().addParamSet (new SeleniumOptions ());
101-
102- session = new Session (model );
103- given (model .getSession ()).willReturn (session );
104- }
105-
10683 @ AfterEach
10784 void tearDown () {
10885 rule .setTimeFinished ();
@@ -122,6 +99,32 @@ static void tidyUp() {
12299
123100 @ Override
124101 protected DomXssScanRule createScanner () {
102+ // Setup here so that the commonScanRuleTests get initialised correctly as well
103+
104+ mockMessages (new ExtensionDomXSS (), new ExtensionSelenium ());
105+ model = mock (Model .class , withSettings ().strictness (Strictness .LENIENT ));
106+ Model .setSingletonForTesting (model );
107+ given (model .getVariantFactory ()).willReturn (new VariantFactory ());
108+ given (model .getOptionsParam ()).willReturn (new OptionsParam ());
109+ extensionNetwork = new ExtensionNetwork ();
110+ extensionNetwork .initModel (model );
111+ ExtensionLoader extensionLoader =
112+ mock (ExtensionLoader .class , withSettings ().strictness (Strictness .LENIENT ));
113+ Control .initSingletonForTesting (model , extensionLoader );
114+
115+ ExtensionSelenium extensionSelenium = new ExtensionSelenium ();
116+ given (extensionLoader .getExtension (ExtensionSelenium .class )).willReturn (extensionSelenium );
117+ extensionSelenium .init ();
118+
119+ extensionNetwork .init ();
120+ extensionNetwork .hook (new ExtensionHook (model , null ));
121+
122+ model .getOptionsParam ().load (new ZapXmlConfiguration ());
123+ model .getOptionsParam ().addParamSet (new SeleniumOptions ());
124+
125+ session = new Session (model );
126+ given (model .getSession ()).willReturn (session );
127+
125128 DomXssScanRule .extensionNetwork = extensionNetwork ;
126129 return new DomXssScanRule ();
127130 }
0 commit comments