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 BASIC.page = 'basic'; | 9 BASIC.page = 'basic'; |
10 var ADVANCED = new settings.Route('/advanced'); | 10 var ADVANCED = new settings.Route('/advanced'); |
11 ADVANCED.page = 'advanced'; | 11 ADVANCED.page = 'advanced'; |
12 assertDeepEquals([], ADVANCED.subpage); | 12 assertDeepEquals([], ADVANCED.subpage); |
13 | 13 |
14 // Test a section route. | 14 // Test a section route. |
15 var PRIVACY = ADVANCED.createChild('/privacy'); | 15 var PRIVACY = ADVANCED.createChild('/privacy'); |
16 PRIVACY.section = 'privacy'; | 16 PRIVACY.section = 'privacy'; |
| 17 assertEquals(ADVANCED, PRIVACY.parent); |
17 assertEquals('advanced', PRIVACY.page); | 18 assertEquals('advanced', PRIVACY.page); |
18 assertDeepEquals([], PRIVACY.subpage); | 19 assertDeepEquals([], PRIVACY.subpage); |
19 assertFalse(PRIVACY.isDescendantOf(BASIC)); | 20 assertFalse(PRIVACY.isDescendantOf(BASIC)); |
20 assertTrue(PRIVACY.isDescendantOf(ADVANCED)); | 21 assertTrue(PRIVACY.isDescendantOf(ADVANCED)); |
21 assertFalse(PRIVACY.isDescendantOf(PRIVACY)); | 22 assertFalse(PRIVACY.isDescendantOf(PRIVACY)); |
22 assertFalse(ADVANCED.isDescendantOf(PRIVACY)); | 23 assertFalse(ADVANCED.isDescendantOf(PRIVACY)); |
23 | 24 |
24 // Test a subpage route. | 25 // Test a subpage route. |
25 var SITE_SETTINGS = PRIVACY.createChild('/siteSettings', 'site-settings'); | 26 var SITE_SETTINGS = PRIVACY.createChild('/siteSettings', 'site-settings'); |
26 assertEquals('/siteSettings', SITE_SETTINGS.url); | 27 assertEquals('/siteSettings', SITE_SETTINGS.url); |
| 28 assertEquals(PRIVACY, SITE_SETTINGS.parent); |
27 assertFalse(!!SITE_SETTINGS.dialog); | 29 assertFalse(!!SITE_SETTINGS.dialog); |
28 assertDeepEquals(['site-settings'], SITE_SETTINGS.subpage); | 30 assertDeepEquals(['site-settings'], SITE_SETTINGS.subpage); |
29 assertEquals('advanced', SITE_SETTINGS.page); | 31 assertEquals('advanced', SITE_SETTINGS.page); |
30 assertEquals('privacy', SITE_SETTINGS.section); | 32 assertEquals('privacy', SITE_SETTINGS.section); |
31 assertFalse(SITE_SETTINGS.isDescendantOf(BASIC)); | 33 assertFalse(SITE_SETTINGS.isDescendantOf(BASIC)); |
32 assertTrue(SITE_SETTINGS.isDescendantOf(ADVANCED)); | 34 assertTrue(SITE_SETTINGS.isDescendantOf(ADVANCED)); |
33 assertTrue(SITE_SETTINGS.isDescendantOf(PRIVACY)); | 35 assertTrue(SITE_SETTINGS.isDescendantOf(PRIVACY)); |
34 | 36 |
35 // Test a sub-subpage route. | 37 // Test a sub-subpage route. |
36 var SITE_SETTINGS_ALL = | 38 var SITE_SETTINGS_ALL = |
37 SITE_SETTINGS.createChild('all', 'all-sites'); | 39 SITE_SETTINGS.createChild('all', 'all-sites'); |
38 assertEquals('/siteSettings/all', SITE_SETTINGS_ALL.url); | 40 assertEquals('/siteSettings/all', SITE_SETTINGS_ALL.url); |
| 41 assertEquals(SITE_SETTINGS, SITE_SETTINGS_ALL.parent); |
39 assertDeepEquals(['site-settings', 'all-sites'], SITE_SETTINGS_ALL.subpage); | 42 assertDeepEquals(['site-settings', 'all-sites'], SITE_SETTINGS_ALL.subpage); |
40 | 43 |
41 // Test a dialog route. | 44 // Test a dialog route. |
42 var CLEAR_BROWSING_DATA = | 45 var CLEAR_BROWSING_DATA = |
43 PRIVACY.createDialog('/clearBrowsingData', 'clear-browsing-data'); | 46 PRIVACY.createDialog('/clearBrowsingData', 'clear-browsing-data'); |
| 47 assertEquals(PRIVACY, CLEAR_BROWSING_DATA.parent); |
44 assertEquals('clear-browsing-data', CLEAR_BROWSING_DATA.dialog); | 48 assertEquals('clear-browsing-data', CLEAR_BROWSING_DATA.dialog); |
45 assertEquals('privacy', CLEAR_BROWSING_DATA.section); | 49 assertEquals('privacy', CLEAR_BROWSING_DATA.section); |
46 assertEquals('advanced', CLEAR_BROWSING_DATA.page); | 50 assertEquals('advanced', CLEAR_BROWSING_DATA.page); |
47 assertEquals('privacy', CLEAR_BROWSING_DATA.section); | 51 assertEquals('privacy', CLEAR_BROWSING_DATA.section); |
48 assertFalse(CLEAR_BROWSING_DATA.isDescendantOf(BASIC)); | 52 assertFalse(CLEAR_BROWSING_DATA.isDescendantOf(BASIC)); |
49 assertTrue(CLEAR_BROWSING_DATA.isDescendantOf(ADVANCED)); | 53 assertTrue(CLEAR_BROWSING_DATA.isDescendantOf(ADVANCED)); |
50 assertTrue(CLEAR_BROWSING_DATA.isDescendantOf(PRIVACY)); | 54 assertTrue(CLEAR_BROWSING_DATA.isDescendantOf(PRIVACY)); |
51 }); | 55 }); |
52 | 56 |
53 test('no duplicate routes', function() { | 57 test('no duplicate routes', function() { |
54 var urls = new Set(); | 58 var urls = new Set(); |
55 Object.values(settings.Route).forEach(function(route) { | 59 Object.values(settings.Route).forEach(function(route) { |
56 assertFalse(urls.has(route.url), route.url); | 60 assertFalse(urls.has(route.url), route.url); |
57 urls.add(route.url); | 61 urls.add(route.url); |
58 }); | 62 }); |
59 }); | 63 }); |
60 }); | 64 }); |
OLD | NEW |