1 # Copyright 2012 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.
8 from telemetry
.internal
.browser
import browser_options
11 class BrowserOptionsTest(unittest
.TestCase
):
12 def testDefaults(self
):
13 options
= browser_options
.BrowserFinderOptions()
14 parser
= options
.CreateParser()
15 parser
.add_option('-x', action
='store', default
=3)
16 parser
.parse_args(['--browser', 'any'])
17 self
.assertEquals(options
.x
, 3) # pylint: disable=no-member
19 def testDefaultsPlusOverride(self
):
20 options
= browser_options
.BrowserFinderOptions()
21 parser
= options
.CreateParser()
22 parser
.add_option('-x', action
='store', default
=3)
23 parser
.parse_args(['--browser', 'any', '-x', 10])
24 self
.assertEquals(options
.x
, 10) # pylint: disable=no-member
26 def testDefaultsDontClobberPresetValue(self
):
27 options
= browser_options
.BrowserFinderOptions()
28 setattr(options
, 'x', 7)
29 parser
= options
.CreateParser()
30 parser
.add_option('-x', action
='store', default
=3)
31 parser
.parse_args(['--browser', 'any'])
32 self
.assertEquals(options
.x
, 7) # pylint: disable=no-member
35 options
= browser_options
.BrowserFinderOptions()
36 parser
= options
.CreateParser()
37 parser
.add_option('-x', action
='count', dest
='v')
38 parser
.parse_args(['--browser', 'any'])
39 self
.assertEquals(options
.v
, None) # pylint: disable=no-member
42 options
= browser_options
.BrowserFinderOptions()
43 parser
= options
.CreateParser()
44 parser
.add_option('-x', action
='count', dest
='v')
45 parser
.parse_args(['--browser', 'any', '-xx'])
46 self
.assertEquals(options
.v
, 2) # pylint: disable=no-member
48 def testOptparseMutabilityWhenSpecified(self
):
49 options
= browser_options
.BrowserFinderOptions()
50 parser
= options
.CreateParser()
51 parser
.add_option('-x', dest
='verbosity', action
='store_true')
52 options_ret
, _
= parser
.parse_args(['--browser', 'any', '-x'])
53 self
.assertEquals(options_ret
, options
)
54 self
.assertTrue(options
.verbosity
)
56 def testOptparseMutabilityWhenNotSpecified(self
):
57 options
= browser_options
.BrowserFinderOptions()
59 parser
= options
.CreateParser()
60 parser
.add_option('-x', dest
='verbosity', action
='store_true')
61 options_ret
, _
= parser
.parse_args(['--browser', 'any'])
62 self
.assertEquals(options_ret
, options
)
63 self
.assertFalse(options
.verbosity
)
65 def testProfileDirDefault(self
):
66 options
= browser_options
.BrowserFinderOptions()
67 parser
= options
.CreateParser()
68 parser
.parse_args(['--browser', 'any'])
69 self
.assertEquals(options
.browser_options
.profile_dir
, None)
71 def testProfileDir(self
):
72 options
= browser_options
.BrowserFinderOptions()
73 parser
= options
.CreateParser()
74 # Need to use a directory that exists.
75 current_dir
= os
.path
.dirname(__file__
)
76 parser
.parse_args(['--browser', 'any', '--profile-dir', current_dir
])
77 self
.assertEquals(options
.browser_options
.profile_dir
, current_dir
)
79 def testExtraBrowserArgs(self
):
80 options
= browser_options
.BrowserFinderOptions()
81 parser
= options
.CreateParser()
82 parser
.parse_args(['--extra-browser-args=--foo --bar'])
84 self
.assertEquals(options
.browser_options
.extra_browser_args
,
85 set(['--foo', '--bar']))
87 def testMergeDefaultValues(self
):
88 options
= browser_options
.BrowserFinderOptions()
89 options
.already_true
= True
90 options
.already_false
= False
91 options
.override_to_true
= False
92 options
.override_to_false
= True
94 parser
= optparse
.OptionParser()
95 parser
.add_option('--already_true', action
='store_true')
96 parser
.add_option('--already_false', action
='store_true')
97 parser
.add_option('--unset', action
='store_true')
98 parser
.add_option('--default_true', action
='store_true', default
=True)
99 parser
.add_option('--default_false', action
='store_true', default
=False)
100 parser
.add_option('--override_to_true', action
='store_true', default
=False)
101 parser
.add_option('--override_to_false', action
='store_true', default
=True)
103 options
.MergeDefaultValues(parser
.get_default_values())
105 self
.assertTrue(options
.already_true
)
106 self
.assertFalse(options
.already_false
)
107 self
.assertTrue(options
.unset
is None)
108 self
.assertTrue(options
.default_true
)
109 self
.assertFalse(options
.default_false
)
110 self
.assertFalse(options
.override_to_true
)
111 self
.assertTrue(options
.override_to_false
)