Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(751)

Side by Side Diff: appengine/monorail/framework/test/framework_views_test.py

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is govered by a BSD-style
3 # license that can be found in the LICENSE file or at
4 # https://developers.google.com/open-source/licenses/bsd
5
6 """Unit tests for framework_views classes."""
7
8 import unittest
9
10 from framework import framework_views
11 from framework import monorailrequest
12 from proto import project_pb2
13 from proto import tracker_pb2
14 from proto import user_pb2
15 import settings
16
17
18 LONG_STR = 'VeryLongStringThatCertainlyWillNotFit'
19 LONG_PART_STR = 'OnePartThatWillNotFit-OneShort'
20
21
22 class LabelViewTest(unittest.TestCase):
23
24 def testLabelView(self):
25 view = framework_views.LabelView('', None)
26 self.assertEquals('', view.name)
27
28 view = framework_views.LabelView('Priority-High', None)
29 self.assertEquals('Priority-High', view.name)
30 self.assertIsNone(view.is_restrict)
31 self.assertEquals('Priority-High', view.tooltip)
32 self.assertEquals('', view.docstring)
33 self.assertEquals('Priority', view.prefix)
34 self.assertEquals('High', view.value)
35
36 view = framework_views.LabelView('%s-%s' % (LONG_STR, LONG_STR), None)
37 self.assertEquals('%s-%s' % (LONG_STR, LONG_STR), view.name)
38 self.assertEquals('%s-%s' % (LONG_STR, LONG_STR), view.tooltip)
39 self.assertEquals('', view.docstring)
40 self.assertEquals(LONG_STR, view.prefix)
41 self.assertEquals(LONG_STR, view.value)
42
43 view = framework_views.LabelView(LONG_PART_STR, None)
44 self.assertEquals(LONG_PART_STR, view.name)
45 self.assertEquals(LONG_PART_STR, view.tooltip)
46 self.assertEquals('', view.docstring)
47 self.assertEquals('OnePartThatWillNotFit', view.prefix)
48 self.assertEquals('OneShort', view.value)
49
50 config = tracker_pb2.ProjectIssueConfig()
51 config.well_known_labels.append(tracker_pb2.LabelDef(
52 label='Priority-High', label_docstring='Must ship in this milestone'))
53
54 view = framework_views.LabelView('Priority-High', config)
55 self.assertEquals('Must ship in this milestone', view.docstring)
56
57 view = framework_views.LabelView('Priority-Foo', config)
58 self.assertEquals('', view.docstring)
59
60 view = framework_views.LabelView('Restrict-View-Commit', None)
61 self.assertTrue(view.is_restrict)
62
63
64 class StatusViewTest(unittest.TestCase):
65
66 def testStatusView(self):
67 view = framework_views.StatusView('', None)
68 self.assertEquals('', view.name)
69
70 view = framework_views.StatusView('Accepted', None)
71 self.assertEquals('Accepted', view.name)
72 self.assertEquals('Accepted', view.tooltip)
73 self.assertEquals('', view.docstring)
74 self.assertEquals('yes', view.means_open)
75
76 view = framework_views.StatusView(LONG_STR, None)
77 self.assertEquals(LONG_STR, view.name)
78 self.assertEquals(LONG_STR, view.tooltip)
79 self.assertEquals('', view.docstring)
80 self.assertEquals('yes', view.means_open)
81
82 config = tracker_pb2.ProjectIssueConfig()
83 config.well_known_statuses.append(tracker_pb2.StatusDef(
84 status='SlamDunk', status_docstring='Code fixed and taught a lesson',
85 means_open=False))
86
87 view = framework_views.StatusView('SlamDunk', config)
88 self.assertEquals('Code fixed and taught a lesson', view.docstring)
89 self.assertFalse(view.means_open)
90
91 view = framework_views.StatusView('SlammedBack', config)
92 self.assertEquals('', view.docstring)
93
94
95 class RevealEmailsToMembersTest(unittest.TestCase):
96
97 def setUp(self):
98 project = project_pb2.Project()
99 project.owner_ids.append(111L)
100 project.committer_ids.append(222L)
101 project.contributor_ids.append(333L)
102 project.contributor_ids.append(888L)
103 user = user_pb2.User()
104 user.is_site_admin = False
105 self.mr = monorailrequest.MonorailRequest()
106 self.mr.project = project
107 self.mr.auth.user_pb = user
108
109 def CheckRevealAllToMember(
110 self, logged_in_user_id, expected, viewed_user_id=333L, group_id=None):
111 user_view = framework_views.UserView(
112 viewed_user_id, 'user@example.com', True)
113
114 if group_id:
115 pass # xxx re-implement groups
116
117 users_by_id = {333L: user_view}
118 self.mr.auth.user_id = logged_in_user_id
119 self.mr.auth.effective_ids = {logged_in_user_id}
120 # Assert display name is obscured before the reveal.
121 self.assertEqual('u...@example.com', user_view.display_name)
122 # Assert profile url contains user ID before the reveal.
123 self.assertEqual('/u/%s/' % viewed_user_id, user_view.profile_url)
124 framework_views.RevealAllEmailsToMembers(self.mr, users_by_id)
125 self.assertEqual(expected, not user_view.obscure_email)
126 if expected:
127 # Assert display name is now revealed.
128 self.assertEqual('user@example.com', user_view.display_name)
129 # Assert profile url contains the email.
130 self.assertEqual('/u/user@example.com/', user_view.profile_url)
131 else:
132 # Assert display name is still hidden.
133 self.assertEqual('u...@example.com', user_view.display_name)
134 # Assert profile url still contains user ID.
135 self.assertEqual('/u/%s/' % viewed_user_id, user_view.profile_url)
136
137 def testRevealEmailsToPriviledgedDomain(self):
138 for priviledged_user_domain in settings.priviledged_user_domains:
139 self.mr.auth.user_pb.email = 'test@' + priviledged_user_domain
140 self.CheckRevealAllToMember(100001L, True)
141
142 def testRevealEmailToSelf(self):
143 self.mr.auth.user_pb.email = 'user@example.com'
144 self.CheckRevealAllToMember(100001L, True)
145
146 def testRevealAllEmailsToMembers_Collaborators(self):
147 self.CheckRevealAllToMember(0L, False)
148 self.CheckRevealAllToMember(111L, True)
149 self.CheckRevealAllToMember(222L, True)
150 self.CheckRevealAllToMember(333L, True)
151 self.CheckRevealAllToMember(444L, False)
152
153 # Viewed user has indirect role in the project via a group.
154 self.CheckRevealAllToMember(0, False, group_id=888L)
155 self.CheckRevealAllToMember(111L, True, group_id=888L)
156 # xxx re-implement
157 # self.CheckRevealAllToMember(
158 # 111, True, viewed_user_id=444L, group_id=888L)
159
160 # Logged in user has indirect role in the project via a group.
161 self.CheckRevealAllToMember(888L, True)
162
163 def testRevealAllEmailsToMembers_Admins(self):
164 self.CheckRevealAllToMember(555L, False)
165 self.mr.auth.user_pb.is_site_admin = True
166 self.CheckRevealAllToMember(555L, True)
167
168
169 class RevealAllEmailsTest(unittest.TestCase):
170
171 def testRevealAllEmail(self):
172 users_by_id = {
173 111L: framework_views.UserView(111L, 'a@a.com', True),
174 222L: framework_views.UserView(222L, 'b@b.com', True),
175 333L: framework_views.UserView(333L, 'c@c.com', True),
176 999L: framework_views.UserView(999L, 'z@z.com', True),
177 }
178 # Assert display names are obscured before the reveal.
179 self.assertEqual('a...@a.com', users_by_id[111L].display_name)
180 self.assertEqual('b...@b.com', users_by_id[222L].display_name)
181 self.assertEqual('c...@c.com', users_by_id[333L].display_name)
182 self.assertEqual('z...@z.com', users_by_id[999L].display_name)
183
184 framework_views.RevealAllEmails(users_by_id)
185
186 self.assertFalse(users_by_id[111L].obscure_email)
187 self.assertFalse(users_by_id[222L].obscure_email)
188 self.assertFalse(users_by_id[333L].obscure_email)
189 self.assertFalse(users_by_id[999L].obscure_email)
190 # Assert display names are now revealed.
191 self.assertEqual('a@a.com', users_by_id[111L].display_name)
192 self.assertEqual('b@b.com', users_by_id[222L].display_name)
193 self.assertEqual('c@c.com', users_by_id[333L].display_name)
194 self.assertEqual('z@z.com', users_by_id[999L].display_name)
195
196
197 if __name__ == '__main__':
198 unittest.main()
OLDNEW
« no previous file with comments | « appengine/monorail/framework/test/framework_helpers_test.py ('k') | appengine/monorail/framework/test/gcs_helpers_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698