branch_utility_test.py revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
1#!/usr/bin/env python
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.
5
6import os
7import sys
8import unittest
9
10from branch_utility import BranchUtility
11from fake_url_fetcher import FakeUrlFetcher
12from object_store_creator import ObjectStoreCreator
13
14class BranchUtilityTest(unittest.TestCase):
15  def setUp(self):
16    self._branch_util = BranchUtility(
17        os.path.join('branch_utility', 'first.json'),
18        os.path.join('branch_utility', 'second.json'),
19        FakeUrlFetcher(os.path.join(sys.path[0], 'test_data')),
20        ObjectStoreCreator.ForTest())
21
22  def testSplitChannelNameFromPath(self):
23    self.assertEquals(('stable', 'extensions/stuff.html'),
24                      self._branch_util.SplitChannelNameFromPath(
25                      'stable/extensions/stuff.html'))
26    self.assertEquals(('dev', 'extensions/stuff.html'),
27                      self._branch_util.SplitChannelNameFromPath(
28                      'dev/extensions/stuff.html'))
29    self.assertEquals(('beta', 'extensions/stuff.html'),
30                      self._branch_util.SplitChannelNameFromPath(
31                      'beta/extensions/stuff.html'))
32    self.assertEquals(('trunk', 'extensions/stuff.html'),
33                      self._branch_util.SplitChannelNameFromPath(
34                      'trunk/extensions/stuff.html'))
35    self.assertEquals((None, 'extensions/stuff.html'),
36                      self._branch_util.SplitChannelNameFromPath(
37                      'extensions/stuff.html'))
38    self.assertEquals((None, 'apps/stuff.html'),
39                      self._branch_util.SplitChannelNameFromPath(
40                      'apps/stuff.html'))
41    self.assertEquals((None, 'extensions/dev/stuff.html'),
42                      self._branch_util.SplitChannelNameFromPath(
43                      'extensions/dev/stuff.html'))
44    self.assertEquals((None, 'stuff.html'),
45                      self._branch_util.SplitChannelNameFromPath(
46                      'stuff.html'))
47
48  def testNewestChannel(self):
49    self.assertEquals('trunk',
50        self._branch_util.NewestChannel(('trunk', 'dev', 'beta', 'stable')))
51    self.assertEquals('trunk',
52        self._branch_util.NewestChannel(('stable', 'beta', 'dev', 'trunk')))
53    self.assertEquals('dev',
54        self._branch_util.NewestChannel(('stable', 'beta', 'dev')))
55    self.assertEquals('dev',
56        self._branch_util.NewestChannel(('dev', 'beta', 'stable')))
57    self.assertEquals('beta',
58        self._branch_util.NewestChannel(('beta', 'stable')))
59    self.assertEquals('beta',
60        self._branch_util.NewestChannel(('stable', 'beta')))
61    self.assertEquals('stable', self._branch_util.NewestChannel(('stable',)))
62    self.assertEquals('beta', self._branch_util.NewestChannel(('beta',)))
63    self.assertEquals('dev', self._branch_util.NewestChannel(('dev',)))
64    self.assertEquals('trunk', self._branch_util.NewestChannel(('trunk',)))
65
66  def testGetChannelInfo(self):
67    self.assertEquals('trunk',
68      self._branch_util.GetChannelInfo('trunk').channel)
69    self.assertEquals('trunk',
70      self._branch_util.GetChannelInfo('trunk').branch)
71    self.assertEquals('trunk',
72      self._branch_util.GetChannelInfo('trunk').version)
73    self.assertEquals('dev',
74      self._branch_util.GetChannelInfo('dev').channel)
75    self.assertEquals(1500,
76      self._branch_util.GetChannelInfo('dev').branch)
77    self.assertEquals(28,
78      self._branch_util.GetChannelInfo('dev').version)
79    self.assertEquals('beta',
80      self._branch_util.GetChannelInfo('beta').channel)
81    self.assertEquals(1453,
82      self._branch_util.GetChannelInfo('beta').branch)
83    self.assertEquals(27,
84      self._branch_util.GetChannelInfo('beta').version)
85    self.assertEquals('stable',
86      self._branch_util.GetChannelInfo('stable').channel)
87    self.assertEquals(1410,
88      self._branch_util.GetChannelInfo('stable').branch)
89    self.assertEquals(26,
90      self._branch_util.GetChannelInfo('stable').version)
91
92  def testGetLatestVersionNumber(self):
93    self.assertEquals(28, self._branch_util.GetLatestVersionNumber())
94
95  def testGetBranchForVersion(self):
96    self.assertEquals(1500,
97        self._branch_util.GetBranchForVersion(28))
98    self.assertEquals(1453,
99        self._branch_util.GetBranchForVersion(27))
100    self.assertEquals(1410,
101        self._branch_util.GetBranchForVersion(26))
102    self.assertEquals(1364,
103        self._branch_util.GetBranchForVersion(25))
104    self.assertEquals(1312,
105        self._branch_util.GetBranchForVersion(24))
106    self.assertEquals(1271,
107        self._branch_util.GetBranchForVersion(23))
108    self.assertEquals(1229,
109        self._branch_util.GetBranchForVersion(22))
110    self.assertEquals(1180,
111        self._branch_util.GetBranchForVersion(21))
112    self.assertEquals(1132,
113        self._branch_util.GetBranchForVersion(20))
114    self.assertEquals(1084,
115        self._branch_util.GetBranchForVersion(19))
116    self.assertEquals(1025,
117        self._branch_util.GetBranchForVersion(18))
118    self.assertEquals(963,
119        self._branch_util.GetBranchForVersion(17))
120    self.assertEquals(696,
121        self._branch_util.GetBranchForVersion(11))
122    self.assertEquals(396,
123        self._branch_util.GetBranchForVersion(5))
124
125  def testGetChannelForVersion(self):
126    self.assertEquals('trunk',
127        self._branch_util.GetChannelForVersion('trunk'))
128    self.assertEquals('dev',
129        self._branch_util.GetChannelForVersion(28))
130    self.assertEquals('beta',
131        self._branch_util.GetChannelForVersion(27))
132    self.assertEquals('stable',
133        self._branch_util.GetChannelForVersion(26))
134    self.assertEquals('stable',
135        self._branch_util.GetChannelForVersion(22))
136    self.assertEquals('stable',
137        self._branch_util.GetChannelForVersion(18))
138    self.assertEquals('stable',
139        self._branch_util.GetChannelForVersion(14))
140    self.assertEquals(None,
141        self._branch_util.GetChannelForVersion(30))
142    self.assertEquals(None,
143        self._branch_util.GetChannelForVersion(42))
144
145
146if __name__ == '__main__':
147  unittest.main()
148