@@ -62,6 +62,75 @@ public function itCanHaveOptions(): void
6262 $ this ->assertEquals ($ options ['exposedHeaders ' ], $ normalized ['exposedHeaders ' ]);
6363 }
6464
65+ /**
66+ * @test
67+ */
68+ public function itCanSetOptions (): void
69+ {
70+ $ service = new CorsService ();
71+ $ normalized = $ this ->getOptionsFromService ($ service );
72+ $ this ->assertEquals ([], $ normalized ['allowedOrigins ' ]);
73+
74+ $ this ->assertInstanceOf (CorsService::class, $ service );
75+
76+ $ options = [
77+ 'allowedOrigins ' => ['localhost ' ],
78+ 'allowedOriginsPatterns ' => ['/something/ ' ],
79+ 'allowedHeaders ' => ['x-custom ' ],
80+ 'allowedMethods ' => ['PUT ' ],
81+ 'maxAge ' => 684 ,
82+ 'supportsCredentials ' => true ,
83+ 'exposedHeaders ' => ['x-custom-2 ' ],
84+ ];
85+
86+ $ service ->setOptions ($ options );
87+
88+ $ normalized = $ this ->getOptionsFromService ($ service );
89+
90+ $ this ->assertEquals ($ options ['allowedOrigins ' ], $ normalized ['allowedOrigins ' ]);
91+ $ this ->assertEquals ($ options ['allowedOriginsPatterns ' ], $ normalized ['allowedOriginsPatterns ' ]);
92+ $ this ->assertEquals ($ options ['allowedHeaders ' ], $ normalized ['allowedHeaders ' ]);
93+ $ this ->assertEquals ($ options ['allowedMethods ' ], $ normalized ['allowedMethods ' ]);
94+ $ this ->assertEquals ($ options ['maxAge ' ], $ normalized ['maxAge ' ]);
95+ $ this ->assertEquals ($ options ['supportsCredentials ' ], $ normalized ['supportsCredentials ' ]);
96+ $ this ->assertEquals ($ options ['exposedHeaders ' ], $ normalized ['exposedHeaders ' ]);
97+ }
98+
99+ /**
100+ * @test
101+ */
102+ public function itCanOverwriteSetOptions (): void
103+ {
104+ $ service = new CorsService (['allowedOrigins ' => ['example.com ' ]]);
105+ $ normalized = $ this ->getOptionsFromService ($ service );
106+
107+ $ this ->assertEquals (['example.com ' ], $ normalized ['allowedOrigins ' ]);
108+
109+ $ this ->assertInstanceOf (CorsService::class, $ service );
110+
111+ $ options = [
112+ 'allowedOrigins ' => ['localhost ' ],
113+ 'allowedOriginsPatterns ' => ['/something/ ' ],
114+ 'allowedHeaders ' => ['x-custom ' ],
115+ 'allowedMethods ' => ['PUT ' ],
116+ 'maxAge ' => 684 ,
117+ 'supportsCredentials ' => true ,
118+ 'exposedHeaders ' => ['x-custom-2 ' ],
119+ ];
120+
121+ $ service ->setOptions ($ options );
122+
123+ $ normalized = $ this ->getOptionsFromService ($ service );
124+
125+ $ this ->assertEquals ($ options ['allowedOrigins ' ], $ normalized ['allowedOrigins ' ]);
126+ $ this ->assertEquals ($ options ['allowedOriginsPatterns ' ], $ normalized ['allowedOriginsPatterns ' ]);
127+ $ this ->assertEquals ($ options ['allowedHeaders ' ], $ normalized ['allowedHeaders ' ]);
128+ $ this ->assertEquals ($ options ['allowedMethods ' ], $ normalized ['allowedMethods ' ]);
129+ $ this ->assertEquals ($ options ['maxAge ' ], $ normalized ['maxAge ' ]);
130+ $ this ->assertEquals ($ options ['supportsCredentials ' ], $ normalized ['supportsCredentials ' ]);
131+ $ this ->assertEquals ($ options ['exposedHeaders ' ], $ normalized ['exposedHeaders ' ]);
132+ }
133+
65134 /**
66135 * @test
67136 */
0 commit comments