OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 suite('route', function() { | 5 suite('route', function() { |
6 test('tree structure', function() { | 6 test('tree structure', function() { |
7 // Set up root page routes. | 7 // Set up root page routes. |
8 var BASIC = new settings.Route('/'); | 8 var BASIC = new settings.Route('/'); |
| 9 assertEquals(0, BASIC.depth); |
| 10 |
9 var ADVANCED = new settings.Route('/advanced'); | 11 var ADVANCED = new settings.Route('/advanced'); |
10 assertFalse(ADVANCED.isSubpage()); | 12 assertFalse(ADVANCED.isSubpage()); |
| 13 assertEquals(0, ADVANCED.depth); |
11 | 14 |
12 // Test a section route. | 15 // Test a section route. |
13 var PRIVACY = ADVANCED.createChild('/privacy'); | 16 var PRIVACY = ADVANCED.createSection('/privacy', 'privacy'); |
14 PRIVACY.section = 'privacy'; | |
15 assertEquals(ADVANCED, PRIVACY.parent); | 17 assertEquals(ADVANCED, PRIVACY.parent); |
| 18 assertEquals(1, PRIVACY.depth); |
16 assertFalse(PRIVACY.isSubpage()); | 19 assertFalse(PRIVACY.isSubpage()); |
17 assertFalse(BASIC.contains(PRIVACY)); | 20 assertFalse(BASIC.contains(PRIVACY)); |
18 assertTrue(ADVANCED.contains(PRIVACY)); | 21 assertTrue(ADVANCED.contains(PRIVACY)); |
19 assertTrue(PRIVACY.contains(PRIVACY)); | 22 assertTrue(PRIVACY.contains(PRIVACY)); |
20 assertFalse(PRIVACY.contains(ADVANCED)); | 23 assertFalse(PRIVACY.contains(ADVANCED)); |
21 | 24 |
22 // Test a subpage route. | 25 // Test a subpage route. |
23 var SITE_SETTINGS = PRIVACY.createChild('/siteSettings'); | 26 var SITE_SETTINGS = PRIVACY.createChild('/siteSettings'); |
24 assertEquals('/siteSettings', SITE_SETTINGS.path); | 27 assertEquals('/siteSettings', SITE_SETTINGS.path); |
25 assertEquals(PRIVACY, SITE_SETTINGS.parent); | 28 assertEquals(PRIVACY, SITE_SETTINGS.parent); |
| 29 assertEquals(2, SITE_SETTINGS.depth); |
26 assertFalse(!!SITE_SETTINGS.dialog); | 30 assertFalse(!!SITE_SETTINGS.dialog); |
27 assertTrue(SITE_SETTINGS.isSubpage()); | 31 assertTrue(SITE_SETTINGS.isSubpage()); |
28 assertEquals('privacy', SITE_SETTINGS.section); | 32 assertEquals('privacy', SITE_SETTINGS.section); |
29 assertFalse(BASIC.contains(SITE_SETTINGS)); | 33 assertFalse(BASIC.contains(SITE_SETTINGS)); |
30 assertTrue(ADVANCED.contains(SITE_SETTINGS)); | 34 assertTrue(ADVANCED.contains(SITE_SETTINGS)); |
31 assertTrue(PRIVACY.contains(SITE_SETTINGS)); | 35 assertTrue(PRIVACY.contains(SITE_SETTINGS)); |
32 | 36 |
33 // Test a sub-subpage route. | 37 // Test a sub-subpage route. |
34 var SITE_SETTINGS_ALL = SITE_SETTINGS.createChild('all'); | 38 var SITE_SETTINGS_ALL = SITE_SETTINGS.createChild('all'); |
35 assertEquals('/siteSettings/all', SITE_SETTINGS_ALL.path); | 39 assertEquals('/siteSettings/all', SITE_SETTINGS_ALL.path); |
36 assertEquals(SITE_SETTINGS, SITE_SETTINGS_ALL.parent); | 40 assertEquals(SITE_SETTINGS, SITE_SETTINGS_ALL.parent); |
| 41 assertEquals(3, SITE_SETTINGS_ALL.depth); |
37 assertTrue(SITE_SETTINGS_ALL.isSubpage()); | 42 assertTrue(SITE_SETTINGS_ALL.isSubpage()); |
38 }); | 43 }); |
39 | 44 |
40 test('no duplicate routes', function() { | 45 test('no duplicate routes', function() { |
41 var paths = new Set(); | 46 var paths = new Set(); |
42 Object.values(settings.Route).forEach(function(route) { | 47 Object.values(settings.Route).forEach(function(route) { |
43 assertFalse(paths.has(route.path), route.path); | 48 assertFalse(paths.has(route.path), route.path); |
44 paths.add(route.path); | 49 paths.add(route.path); |
45 }); | 50 }); |
46 }); | 51 }); |
47 }); | 52 }); |
OLD | NEW |