Skip to content

Commit 6d8623f

Browse files
authored
Merge pull request #9 from fruitcake/feat-setOptions
Test setOptions
2 parents 42ea548 + 7cf2a9d commit 6d8623f

File tree

3 files changed

+76
-2
lines changed

3 files changed

+76
-2
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## 1.0
8+
## 1.1-dev (Unreleased)
9+
10+
### Added
11+
- setOptions() method to overwrite or set the options later.
12+
13+
## 1.0.0 (2020-02-19)
914

1015
### Changed since split from asm89/stack-cors
1116

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
},
4040
"extra": {
4141
"branch-alias": {
42-
"dev-main": "1.0-dev"
42+
"dev-main": "1.1-dev"
4343
}
4444
}
4545
}

tests/CorsServiceTest.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)