| OLD | NEW |
| (Empty) | |
| 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 |
| 3 # found in the LICENSE file. |
| 4 |
| 5 from crash.flag_manager import Flag |
| 6 from crash.flag_manager import FlagManager |
| 7 from crash.test.stacktrace_test_suite import StacktraceTestSuite |
| 8 |
| 9 |
| 10 class FlagTest(StacktraceTestSuite): |
| 11 |
| 12 def setUp(self): |
| 13 super(FlagTest, self).setUp() |
| 14 self.flag = Flag('test_flag', lambda line: 'turn on flag' in line, |
| 15 val=False) |
| 16 |
| 17 def testFlagNameProperty(self): |
| 18 self.assertEqual(self.flag.name, 'test_flag') |
| 19 |
| 20 def testFlagValProperty(self): |
| 21 self.assertFalse(self.flag.val) |
| 22 self.flag.val = True |
| 23 self.assertTrue(self.flag.val) |
| 24 self.assertTrue(bool(self.flag)) |
| 25 |
| 26 def testConditionallyTurOn(self): |
| 27 self.assertFalse(bool(self.flag)) |
| 28 self.flag.ConditionallyTurnOn('line: turn on flag') |
| 29 self.assertTrue(bool(self.flag)) |
| 30 |
| 31 |
| 32 class FlagManagerTest(StacktraceTestSuite): |
| 33 |
| 34 def setUp(self): |
| 35 super(FlagManagerTest, self).setUp() |
| 36 self.flag_manager = FlagManager() |
| 37 |
| 38 def testClearFlags(self): |
| 39 self.flag_manager.Register('test', Flag('test_flag', val=True)) |
| 40 self.assertEqual(len(self.flag_manager.flags), 1) |
| 41 self.flag_manager.ClearFlags() |
| 42 self.assertEqual(len(self.flag_manager.flags), 0) |
| 43 |
| 44 def testRegister(self): |
| 45 self.flag_manager.Register('dummy', Flag('dummy_flag', val=True)) |
| 46 self.assertEqual(len(self.flag_manager.flags), 1) |
| 47 |
| 48 def testGetFlagGroup(self): |
| 49 flag = Flag('group_flag', val=True) |
| 50 self.flag_manager.Register('group1', flag) |
| 51 self.flag_manager.Register('group2', flag) |
| 52 self.assertListEqual(self.flag_manager.GetFlagGroup('group1'), [flag]) |
| 53 self.assertListEqual(self.flag_manager.GetFlagGroup(), [flag, flag]) |
| 54 |
| 55 def testReset(self): |
| 56 self.flag_manager.Register('group', Flag('dummy_flag1', val=True)) |
| 57 self.flag_manager.Register('group', Flag('dummy_flag2', val=True)) |
| 58 self.flag_manager.Reset() |
| 59 for flag in self.flag_manager.GetFlagGroup(): |
| 60 self.assertFalse(flag.val) |
| 61 |
| 62 def testConditionallyTurOn(self): |
| 63 self.flag_manager.Register( |
| 64 'group', |
| 65 Flag('flag1', condition=lambda line: 'flag1 marker' in line, val=False)) |
| 66 self.flag_manager.Register( |
| 67 'group', |
| 68 Flag('flag2', condition=lambda line: 'flag2 marker' in line, val=False)) |
| 69 line = 'line: flag1 marker flag2 marker' |
| 70 self.flag_manager.ConditionallyTurnOn(line) |
| 71 self.assertTrue(bool(self.flag_manager.Get('flag1'))) |
| 72 self.assertTrue(bool(self.flag_manager.Get('flag2'))) |
| 73 |
| 74 def testConditionallyTurOnWhenConditionsNotMet(self): |
| 75 self.flag_manager.Register( |
| 76 'group', |
| 77 Flag('flag', condition=lambda line: 'flag marker' in line, val=False)) |
| 78 line = 'dummy line' |
| 79 self.flag_manager.ConditionallyTurnOn(line) |
| 80 self.assertFalse(bool(self.flag_manager.Get('flag'))) |
| 81 |
| 82 def testSetFlagVal(self): |
| 83 self.flag_manager.Register('group', Flag('flag', val=False)) |
| 84 self.flag_manager.Set('flag', True) |
| 85 self.flag_manager.Set('non_flag', True) |
| 86 self.assertTrue(self.flag_manager.Get('flag').val) |
| OLD | NEW |