| #!/usr/bin/env python |
| |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this file, |
| # You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| import mozfile |
| import mozprofile |
| import os |
| import tempfile |
| import unittest |
| |
| here = os.path.dirname(os.path.abspath(__file__)) |
| |
| class TestProfilePrint(unittest.TestCase): |
| |
| def test_profileprint(self): |
| """ |
| test the summary function |
| """ |
| |
| keys = set(['Files', 'Path', 'user.js']) |
| ff_prefs = mozprofile.FirefoxProfile.preferences # shorthand |
| pref_string = '\n'.join(['%s: %s' % (key, ff_prefs[key]) |
| for key in sorted(ff_prefs.keys())]) |
| |
| tempdir = tempfile.mkdtemp() |
| try: |
| profile = mozprofile.FirefoxProfile(tempdir) |
| parts = profile.summary(return_parts=True) |
| parts = dict(parts) |
| |
| self.assertEqual(parts['Path'], tempdir) |
| self.assertEqual(set(parts.keys()), keys) |
| self.assertEqual(pref_string, parts['user.js'].strip()) |
| |
| except: |
| raise |
| finally: |
| mozfile.rmtree(tempdir) |
| |
| def test_strcast(self): |
| """ |
| test casting to a string |
| """ |
| |
| profile = mozprofile.Profile() |
| self.assertEqual(str(profile), profile.summary()) |
| |
| def test_profile_diff(self): |
| profile1 = mozprofile.Profile() |
| profile2 = mozprofile.Profile(preferences=dict(foo='bar')) |
| |
| # diff a profile against itself; no difference |
| self.assertEqual([], mozprofile.diff(profile1, profile1)) |
| |
| # diff two profiles |
| diff = dict(mozprofile.diff(profile1, profile2)) |
| self.assertEqual(diff.keys(), ['user.js']) |
| lines = [line.strip() for line in diff['user.js'].splitlines()] |
| self.assertTrue('+foo: bar' in lines) |
| |
| # diff a blank vs FirefoxProfile |
| ff_profile = mozprofile.FirefoxProfile() |
| diff = dict(mozprofile.diff(profile2, ff_profile)) |
| self.assertEqual(diff.keys(), ['user.js']) |
| lines = [line.strip() for line in diff['user.js'].splitlines()] |
| self.assertTrue('-foo: bar' in lines) |
| ff_pref_lines = ['+%s: %s' % (key, value) |
| for key, value in mozprofile.FirefoxProfile.preferences.items()] |
| self.assertTrue(set(ff_pref_lines).issubset(lines)) |
| |
| if __name__ == '__main__': |
| unittest.main() |