2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
10 from branch_utility
import BranchUtility
, ChannelInfo
11 from fake_url_fetcher
import FakeUrlFetcher
12 from object_store_creator
import ObjectStoreCreator
13 from test_util
import Server2Path
16 class BranchUtilityTest(unittest
.TestCase
):
19 self
._branch
_util
= BranchUtility(
20 os
.path
.join('branch_utility', 'first.json'),
21 os
.path
.join('branch_utility', 'second.json'),
22 FakeUrlFetcher(Server2Path('test_data')),
23 ObjectStoreCreator
.ForTest())
25 def testSplitChannelNameFromPath(self
):
26 self
.assertEquals(('stable', 'extensions/stuff.html'),
27 self
._branch
_util
.SplitChannelNameFromPath(
28 'stable/extensions/stuff.html'))
29 self
.assertEquals(('dev', 'extensions/stuff.html'),
30 self
._branch
_util
.SplitChannelNameFromPath(
31 'dev/extensions/stuff.html'))
32 self
.assertEquals(('beta', 'extensions/stuff.html'),
33 self
._branch
_util
.SplitChannelNameFromPath(
34 'beta/extensions/stuff.html'))
35 self
.assertEquals(('master', 'extensions/stuff.html'),
36 self
._branch
_util
.SplitChannelNameFromPath(
37 'master/extensions/stuff.html'))
38 self
.assertEquals((None, 'extensions/stuff.html'),
39 self
._branch
_util
.SplitChannelNameFromPath(
40 'extensions/stuff.html'))
41 self
.assertEquals((None, 'apps/stuff.html'),
42 self
._branch
_util
.SplitChannelNameFromPath(
44 self
.assertEquals((None, 'extensions/dev/stuff.html'),
45 self
._branch
_util
.SplitChannelNameFromPath(
46 'extensions/dev/stuff.html'))
47 self
.assertEquals((None, 'stuff.html'),
48 self
._branch
_util
.SplitChannelNameFromPath(
51 def testNewestChannel(self
):
52 self
.assertEquals('master',
53 self
._branch
_util
.NewestChannel(('master', 'dev', 'beta', 'stable')))
54 self
.assertEquals('master',
55 self
._branch
_util
.NewestChannel(('stable', 'beta', 'dev', 'master')))
56 self
.assertEquals('dev',
57 self
._branch
_util
.NewestChannel(('stable', 'beta', 'dev')))
58 self
.assertEquals('dev',
59 self
._branch
_util
.NewestChannel(('dev', 'beta', 'stable')))
60 self
.assertEquals('beta',
61 self
._branch
_util
.NewestChannel(('beta', 'stable')))
62 self
.assertEquals('beta',
63 self
._branch
_util
.NewestChannel(('stable', 'beta')))
64 self
.assertEquals('stable', self
._branch
_util
.NewestChannel(('stable',)))
65 self
.assertEquals('beta', self
._branch
_util
.NewestChannel(('beta',)))
66 self
.assertEquals('dev', self
._branch
_util
.NewestChannel(('dev',)))
67 self
.assertEquals('master', self
._branch
_util
.NewestChannel(('master',)))
70 oldest_stable_info
= ChannelInfo('stable', '963', 17)
71 older_stable_info
= ChannelInfo('stable', '1025', 18)
72 old_stable_info
= ChannelInfo('stable', '1084', 19)
73 sort_of_old_stable_info
= ChannelInfo('stable', '1500', 28)
74 stable_info
= ChannelInfo('stable', '1547', 29)
75 beta_info
= ChannelInfo('beta', '1599', 30)
76 dev_info
= ChannelInfo('dev', '1612', 31)
77 master_info
= ChannelInfo('master', 'master', 'master')
79 self
.assertEquals(older_stable_info
,
80 self
._branch
_util
.Newer(oldest_stable_info
))
81 self
.assertEquals(old_stable_info
,
82 self
._branch
_util
.Newer(older_stable_info
))
83 self
.assertEquals(stable_info
,
84 self
._branch
_util
.Newer(sort_of_old_stable_info
))
85 self
.assertEquals(beta_info
, self
._branch
_util
.Newer(stable_info
))
86 self
.assertEquals(dev_info
, self
._branch
_util
.Newer(beta_info
))
87 self
.assertEquals(master_info
, self
._branch
_util
.Newer(dev_info
))
88 # Test the upper limit.
89 self
.assertEquals(None, self
._branch
_util
.Newer(master_info
))
93 master_info
= ChannelInfo('master', 'master', 'master')
94 dev_info
= ChannelInfo('dev', '1612', 31)
95 beta_info
= ChannelInfo('beta', '1599', 30)
96 stable_info
= ChannelInfo('stable', '1547', 29)
97 old_stable_info
= ChannelInfo('stable', '1500', 28)
98 older_stable_info
= ChannelInfo('stable', '1453', 27)
99 oldest_stable_info
= ChannelInfo('stable', '396', 5)
101 self
.assertEquals(dev_info
, self
._branch
_util
.Older(master_info
))
102 self
.assertEquals(beta_info
, self
._branch
_util
.Older(dev_info
))
103 self
.assertEquals(stable_info
, self
._branch
_util
.Older(beta_info
))
104 self
.assertEquals(old_stable_info
, self
._branch
_util
.Older(stable_info
))
105 self
.assertEquals(older_stable_info
,
106 self
._branch
_util
.Older(old_stable_info
))
107 # Test the lower limit.
108 self
.assertEquals(None, self
._branch
_util
.Older(oldest_stable_info
))
110 def testGetChannelInfo(self
):
111 master_info
= ChannelInfo('master', 'master', 'master')
112 self
.assertEquals(master_info
, self
._branch
_util
.GetChannelInfo('master'))
114 dev_info
= ChannelInfo('dev', '1612', 31)
115 self
.assertEquals(dev_info
, self
._branch
_util
.GetChannelInfo('dev'))
117 beta_info
= ChannelInfo('beta', '1599', 30)
118 self
.assertEquals(beta_info
, self
._branch
_util
.GetChannelInfo('beta'))
120 stable_info
= ChannelInfo('stable', '1547', 29)
121 self
.assertEquals(stable_info
, self
._branch
_util
.GetChannelInfo('stable'))
123 def testGetLatestVersionNumber(self
):
124 self
.assertEquals(37, self
._branch
_util
.GetLatestVersionNumber())
126 def testGetBranchForVersion(self
):
127 self
.assertEquals('1500',
128 self
._branch
_util
.GetBranchForVersion(28))
129 self
.assertEquals('1453',
130 self
._branch
_util
.GetBranchForVersion(27))
131 self
.assertEquals('1410',
132 self
._branch
_util
.GetBranchForVersion(26))
133 self
.assertEquals('1364',
134 self
._branch
_util
.GetBranchForVersion(25))
135 self
.assertEquals('1312',
136 self
._branch
_util
.GetBranchForVersion(24))
137 self
.assertEquals('1271',
138 self
._branch
_util
.GetBranchForVersion(23))
139 self
.assertEquals('1229',
140 self
._branch
_util
.GetBranchForVersion(22))
141 self
.assertEquals('1180',
142 self
._branch
_util
.GetBranchForVersion(21))
143 self
.assertEquals('1132',
144 self
._branch
_util
.GetBranchForVersion(20))
145 self
.assertEquals('1084',
146 self
._branch
_util
.GetBranchForVersion(19))
147 self
.assertEquals('1025',
148 self
._branch
_util
.GetBranchForVersion(18))
149 self
.assertEquals('963',
150 self
._branch
_util
.GetBranchForVersion(17))
151 self
.assertEquals('696',
152 self
._branch
_util
.GetBranchForVersion(11))
153 self
.assertEquals('396',
154 self
._branch
_util
.GetBranchForVersion(5))
156 def testGetChannelForVersion(self
):
157 self
.assertEquals('master',
158 self
._branch
_util
.GetChannelForVersion('master'))
159 self
.assertEquals('dev',
160 self
._branch
_util
.GetChannelForVersion(31))
161 self
.assertEquals('beta',
162 self
._branch
_util
.GetChannelForVersion(30))
163 self
.assertEquals('stable',
164 self
._branch
_util
.GetChannelForVersion(26))
165 self
.assertEquals('stable',
166 self
._branch
_util
.GetChannelForVersion(22))
167 self
.assertEquals('stable',
168 self
._branch
_util
.GetChannelForVersion(18))
169 self
.assertEquals('stable',
170 self
._branch
_util
.GetChannelForVersion(14))
171 self
.assertEquals(None,
172 self
._branch
_util
.GetChannelForVersion(32))
173 self
.assertEquals(None,
174 self
._branch
_util
.GetChannelForVersion(42))
177 if __name__
== '__main__':