1: <?php
2: namespace tests\unit\lib;
3:
4: use Azalea\Core\Config\ConfigManager;
5: use Azalea\Core\Environment\Environment;
6: use Azalea\Core\Config\RepositoryMemoryLoader;
7: use Azalea\Core\Util\NestedHashMap;
8:
9: use barebones\lib\filesystem\PathManager;
10: use barebones\lib\http\UrlManager;
11:
12: use Symfony\Component\HttpFoundation\Request;
13:
14: use tests\unit\BaseUnitTestCase;
15:
16: class UrlManagerTest extends BaseUnitTestCase
17: {
18: public function setUp()
19: {
20: putenv("BRANCH_ROOT=");
21: }
22:
23: public function testCreateUrlManager()
24: {
25: $env = new Environment("development", "adev01d");
26: $config = new ConfigManager(
27: new RepositoryMemoryLoader(array())
28: );
29: $request = Request::create(
30: 'https://branches.azaleahealth.com/testing/',
31: 'GET',
32: array()
33: );
34:
35: $url = new UrlManager($env, $config, $request);
36: $this->assertTrue(true);
37: }
38:
39: public function testGetBase()
40: {
41: $config = new ConfigManager(
42: new RepositoryMemoryLoader(array())
43: );
44:
45:
46: $env = new Environment("development", "adev01d");
47: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
48: $url = new UrlManager($env, $config, $request);
49: $this->assertEquals("https://adev01d.azaleahealth.com/testing/", $url->getBase());
50:
51:
52: putenv("BRANCH_ROOT=testing/hotfix");
53: $url = new UrlManager($env, $config, $request);
54: $this->assertEquals("https://adev01d.azaleahealth.com/testing/hotfix/", $url->getBase());
55: putenv("BRANCH_ROOT=");
56:
57:
58: $env = new Environment("development", "adev01");
59: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
60: $url = new UrlManager($env, $config, $request);
61: $this->assertEquals("https://adev01.azaleahealth.com/testing/", $url->getBase());
62:
63:
64: putenv("BRANCH_ROOT=testing/hotfix");
65: $url = new UrlManager($env, $config, $request);
66: $this->assertEquals("https://adev01.azaleahealth.com/testing/hotfix/", $url->getBase());
67: putenv("BRANCH_ROOT=");
68:
69:
70: $request = Request::create(
71: 'https://app.azaleahealth.com/',
72: 'GET',
73: array()
74: );
75:
76: $url = new UrlManager($env, $config, $request);
77: $this->assertEquals("https://app.azaleahealth.com/", $url->getBase());
78: }
79:
80: public function testGetBaseCommandLine()
81: {
82: $config = new ConfigManager(
83: new RepositoryMemoryLoader(array())
84: );
85:
86:
87: $request = Request::createFromGlobals();
88:
89:
90: $env = new Environment("development", "adev01d");
91: $url = new UrlManager($env, $config, $request);
92: $this->assertEquals("https://adev01d.azaleahealth.com/", $url->getBase());
93:
94: $env = new Environment("development", "adev01");
95: $url = new UrlManager($env, $config, $request);
96: $this->assertEquals("https://adev01.azaleahealth.com/", $url->getBase());
97:
98:
99: $env = new Environment("production", "aws01");
100: $url = new UrlManager($env, $config, $request);
101: $this->assertEquals("https://app.azaleahealth.com/", $url->getBase());
102:
103:
104: $env = new Environment("fs", "fs01");
105: $url = new UrlManager($env, $config, $request);
106: $this->assertEquals("https://app.azaleahealth.com/", $url->getBase());
107:
108:
109: $env = new Environment("afs", "afs01");
110: $url = new UrlManager($env, $config, $request);
111: $this->assertEquals("https://app.azaleahealth.com/", $url->getBase());
112: }
113:
114: public function testGetBranchName()
115: {
116: $config = new ConfigManager(
117: new RepositoryMemoryLoader(array())
118: );
119:
120:
121: $env = new Environment("development", "adev01d");
122: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
123: $url = new UrlManager($env, $config, $request);
124: $this->assertEquals("testing", $url->getBranchName());
125:
126:
127: putenv("BRANCH_ROOT=testing/hotfix");
128: $url = new UrlManager($env, $config, $request);
129: $this->assertEquals("testing/hotfix", $url->getBranchName());
130: putenv("BRANCH_ROOT=");
131:
132:
133: $env = new Environment("development", "adev01");
134: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
135: $url = new UrlManager($env, $config, $request);
136: $this->assertEquals("testing", $url->getBranchName());
137:
138:
139: putenv("BRANCH_ROOT=testing/hotfix");
140: $url = new UrlManager($env, $config, $request);
141: $this->assertEquals("testing/hotfix", $url->getBranchName());
142: putenv("BRANCH_ROOT=");
143: }
144:
145: public function testMakeUrl()
146: {
147: $config = new ConfigManager(
148: new RepositoryMemoryLoader(array())
149: );
150:
151:
152: $env = new Environment("development", "adev01d");
153: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
154: $url = new UrlManager($env, $config, $request);
155: $this->assertEquals("https://adev01d.azaleahealth.com/testing/selenium.html", $url->makeUrl("selenium.html"));
156:
157:
158: $env = new Environment("development", "adev01");
159: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
160: $url = new UrlManager($env, $config, $request);
161: $this->assertEquals("https://adev01.azaleahealth.com/testing/selenium.html", $url->makeUrl("selenium.html"));
162:
163:
164: $request = Request::create(
165: 'https://app.azaleahealth.com/',
166: 'GET',
167: array()
168: );
169:
170: $url = new UrlManager($env, $config, $request);
171: $this->assertEquals("https://app.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
172: }
173:
174: public function testMakeUrlCommandLine()
175: {
176: $config = new ConfigManager(
177: new RepositoryMemoryLoader(array())
178: );
179:
180:
181: $request = Request::createFromGlobals();
182:
183:
184: $env = new Environment("development", "adev01d");
185: $url = new UrlManager($env, $config, $request);
186: $this->assertEquals("https://adev01d.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
187:
188: $env = new Environment("development", "adev01");
189: $url = new UrlManager($env, $config, $request);
190: $this->assertEquals("https://adev01.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
191:
192:
193: $env = new Environment("production", "aws01");
194: $url = new UrlManager($env, $config, $request);
195: $this->assertEquals("https://app.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
196:
197:
198: $env = new Environment("fs", "fs01");
199: $url = new UrlManager($env, $config, $request);
200: $this->assertEquals("https://app.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
201:
202:
203: $env = new Environment("afs", "afs01");
204: $url = new UrlManager($env, $config, $request);
205: $this->assertEquals("https://app.azaleahealth.com/selenium.html", $url->makeUrl("selenium.html"));
206: }
207:
208: public function testGetHome()
209: {
210: $config = new ConfigManager(
211: new RepositoryMemoryLoader(array())
212: );
213:
214:
215: $env = new Environment("development", "adev01d");
216: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
217: $url = new UrlManager($env, $config, $request);
218: $this->assertEquals("http://adev01d.azaleahealth.com/testing/", $url->getHome());
219:
220:
221: $env = new Environment("development", "adev01");
222: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
223: $url = new UrlManager($env, $config, $request);
224: $this->assertEquals("http://adev01.azaleahealth.com/testing/", $url->getHome());
225:
226:
227: $request = Request::create(
228: 'https://app.azaleahealth.com/',
229: 'GET',
230: array()
231: );
232:
233: $url = new UrlManager($env, $config, $request);
234: $this->assertEquals("http://app.azaleahealth.com/", $url->getHome());
235: }
236:
237: public function testGetHomeCommandLine()
238: {
239: $config = new ConfigManager(
240: new RepositoryMemoryLoader(array())
241: );
242:
243:
244: $request = Request::createFromGlobals();
245:
246:
247: $env = new Environment("development", "adev01d");
248: $url = new UrlManager($env, $config, $request);
249: $this->assertEquals("http://adev01d.azaleahealth.com/", $url->getHome());
250:
251: $env = new Environment("development", "adev01");
252: $url = new UrlManager($env, $config, $request);
253: $this->assertEquals("http://adev01.azaleahealth.com/", $url->getHome());
254:
255:
256: $env = new Environment("production", "aws01");
257: $url = new UrlManager($env, $config, $request);
258: $this->assertEquals("http://app.azaleahealth.com/", $url->getHome());
259:
260:
261: $env = new Environment("fs", "fs01");
262: $url = new UrlManager($env, $config, $request);
263: $this->assertEquals("http://app.azaleahealth.com/", $url->getHome());
264:
265:
266: $env = new Environment("afs", "afs01");
267: $url = new UrlManager($env, $config, $request);
268: $this->assertEquals("http://app.azaleahealth.com/", $url->getHome());
269: }
270:
271: public function testGetTemp()
272: {
273: $config = new ConfigManager(
274: new RepositoryMemoryLoader(array())
275: );
276:
277:
278: $env = new Environment("development", "adev01d");
279: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
280: $url = new UrlManager($env, $config, $request);
281: $this->assertEquals("https://adev01d.azaleahealth.com/tmp/", $url->getTemp());
282: $this->assertEquals("https://adev01d.azaleahealth.com/tmp/abc.pdf", $url->getTemp("abc.pdf"));
283:
284:
285: $env = new Environment("development", "adev01");
286: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
287: $url = new UrlManager($env, $config, $request);
288: $this->assertEquals("https://adev01.azaleahealth.com/tmp/", $url->getTemp());
289: $this->assertEquals("https://adev01.azaleahealth.com/tmp/abc.pdf", $url->getTemp("abc.pdf"));
290:
291:
292: $env = new Environment("production", "aws01");
293: $config = new ConfigManager(
294: new RepositoryMemoryLoader(array(
295: "url" => array(
296: "files" => array(
297: "com" => "https://app.azaleahealth.com/",
298: "net" => "https://www.azaleahealth.net/"
299: )
300: )
301: ))
302: );
303: $request = Request::create(
304: 'https://app.azaleahealth.com/',
305: 'GET',
306: array()
307: );
308:
309: $url = new UrlManager($env, $config, $request);
310: $this->assertEquals("https://app.azaleahealth.com/awa/tmp/", $url->getTemp());
311: $this->assertEquals("https://app.azaleahealth.com/awa/tmp/abc.pdf", $url->getTemp("abc.pdf"));
312:
313:
314: $request = Request::create(
315: 'https://www.azaleahealth.net/',
316: 'GET',
317: array()
318: );
319:
320: $url = new UrlManager($env, $config, $request);
321: $this->assertEquals("https://www.azaleahealth.net/awa/tmp/", $url->getTemp());
322: $this->assertEquals("https://www.azaleahealth.net/awa/tmp/abc.pdf", $url->getTemp("abc.pdf"));
323: }
324:
325: public function testGetScan()
326: {
327: $config = new ConfigManager(
328: new RepositoryMemoryLoader(array())
329: );
330:
331:
332: $env = new Environment("development", "adev01d");
333: $request = Request::create('https://adev01d.azaleahealth.com/testing/', 'GET', array());
334: $url = new UrlManager($env, $config, $request);
335: $this->assertEquals("https://adev01d.azaleahealth.com/scans/", $url->getScan());
336: $this->assertEquals("https://adev01d.azaleahealth.com/scans/abc.pdf", $url->getScan("abc.pdf"));
337:
338:
339: $env = new Environment("development", "adev01");
340: $request = Request::create('https://adev01.azaleahealth.com/testing/', 'GET', array());
341: $url = new UrlManager($env, $config, $request);
342: $this->assertEquals("https://adev01.azaleahealth.com/scans/", $url->getScan());
343: $this->assertEquals("https://adev01.azaleahealth.com/scans/abc.pdf", $url->getScan("abc.pdf"));
344:
345:
346: $env = new Environment("production", "aws01");
347: $config = new ConfigManager(
348: new RepositoryMemoryLoader(array(
349: "url" => array(
350: "files" => array(
351: "com" => "https://app.azaleahealth.com/",
352: "net" => "https://www.azaleahealth.net/"
353: )
354: )
355: ))
356: );
357: $request = Request::create(
358: 'https://app.azaleahealth.com/',
359: 'GET',
360: array()
361: );
362:
363: $url = new UrlManager($env, $config, $request);
364: $this->assertEquals("https://app.azaleahealth.com/awa/scans/", $url->getScan());
365: $this->assertEquals("https://app.azaleahealth.com/awa/scans/abc.pdf", $url->getScan("abc.pdf"));
366:
367:
368: $request = Request::create(
369: 'https://www.azaleahealth.net/',
370: 'GET',
371: array()
372: );
373:
374: $url = new UrlManager($env, $config, $request);
375: $this->assertEquals("https://www.azaleahealth.net/awa/scans/", $url->getScan());
376: $this->assertEquals("https://www.azaleahealth.net/awa/scans/abc.pdf", $url->getScan("abc.pdf"));
377: }
378: }
379: