14
14
# along with this program; if not, write to the Free Software
 
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
17
 
from bzrlib.tests import TestCase
 
 
17
from bzrlib.tests import TestCase, TestCaseInTempDir
 
18
18
from bzrlib.plugins.gtk.olive import Preferences
 
20
22
# FIXME: need to make sure that this also tests writing/reading.
 
21
 
class TestPreferences(TestCase):
 
 
23
class TestPreferences(TestCaseInTempDir):
 
 
25
        super(TestPreferences, self).setUp()
 
 
26
        self.prefs = Preferences(os.path.join(self.test_dir, 'prefs'))
 
22
28
    def test_create(self):
 
25
31
    def test_add_bookmark(self):
 
26
32
        """make sure a bookmark can be added. This function is only supposed 
 
27
33
        to store the location, not try to access it. """
 
29
 
        self.assertTrue(x.add_bookmark("file://foobar"))
 
30
 
        self.assertTrue("file://foobar" in x.get_bookmarks())
 
 
34
        self.assertTrue(self.prefs.add_bookmark("file://foobar"))
 
 
35
        self.assertTrue("file://foobar" in self.prefs.get_bookmarks())
 
32
37
    def test_add_bookmark_twice(self):
 
33
38
        """Adding an already present bookmark will result in False being 
 
36
 
        self.assertTrue(x.add_bookmark("file://foobar"))
 
37
 
        self.assertFalse(x.add_bookmark("file://foobar"))
 
 
40
        self.assertTrue(self.prefs.add_bookmark("file://foobar"))
 
 
41
        self.assertFalse(self.prefs.add_bookmark("file://foobar"))
 
39
43
    def test_set_bookmark_title(self):
 
40
44
        """Test setting a title for an existing bookmark."""
 
42
 
        x.add_bookmark("file://foobar")
 
43
 
        x.set_bookmark_title("file://foobar", "My Bookmark")
 
 
45
        self.prefs.add_bookmark("file://foobar")
 
 
46
        self.prefs.set_bookmark_title("file://foobar", "My Bookmark")
 
45
48
    def test_remove_bookmark(self):
 
46
49
        """Test removing a bookmark."""
 
48
 
        x.add_bookmark("http://example.com/branch")
 
49
 
        x.remove_bookmark("http://example.com/branch")
 
50
 
        self.assertFalse("http://example.com/branch" in x.get_bookmarks())
 
 
50
        self.prefs.add_bookmark("http://example.com/branch")
 
 
51
        self.prefs.remove_bookmark("http://example.com/branch")
 
 
52
        self.assertFalse("http://example.com/branch" in self.prefs.get_bookmarks())
 
52
54
    def test_get_bookmarks_empty(self):
 
53
55
        """Test whether a new Preferences() object has an empty bookmarks 
 
56
 
        self.assertEqual([], x.get_bookmarks())
 
 
57
        self.assertEqual([], self.prefs.get_bookmarks())
 
58
59
    def test_get_bookmark_title_set(self):
 
59
60
        """Test getting a title for an existing bookmark."""
 
61
 
        x.add_bookmark("file://foobar")
 
62
 
        x.set_bookmark_title("file://foobar", "My Bookmark")
 
63
 
        self.assertEqual("My Bookmark", x.get_bookmark_title("file://foobar"))
 
 
61
        self.prefs.add_bookmark("file://foobar")
 
 
62
        self.prefs.set_bookmark_title("file://foobar", "My Bookmark")
 
 
63
        self.assertEqual("My Bookmark", self.prefs.get_bookmark_title("file://foobar"))
 
65
65
    def test_get_bookmark_title_implicit(self):
 
66
66
        """Test getting a bookmark title for a bookmark that doesn't
 
67
67
        have a title set."""
 
69
 
        x.add_bookmark("file://bla")
 
70
 
        self.assertEqual("file://bla", x.get_bookmark_title("file://bla"))
 
 
68
        self.prefs.add_bookmark("file://bla")
 
 
69
        self.assertEqual("file://bla", self.prefs.get_bookmark_title("file://bla"))
 
72
71
    def test_set_preference(self):
 
73
72
        """Check whether setting preferences works."""
 
75
 
        x.set_preference("foo", True)
 
76
 
        x.set_preference("foo", False)
 
77
 
        x.set_preference("foo", "bloe")
 
 
73
        self.prefs.set_preference("foo", True)
 
 
74
        self.prefs.set_preference("foo", False)
 
 
75
        self.prefs.set_preference("foo", "bloe")
 
79
77
    def test_get_preference_bool(self):
 
80
78
        """Check whether a preference can be retrieved."""
 
82
 
        x.set_preference("foo", True)
 
83
 
        self.assertEqual(True, x.get_preference("foo", "bool"))
 
 
79
        self.prefs.set_preference("foo", True)
 
 
80
        self.assertEqual(True, self.prefs.get_preference("foo", "bool"))
 
85
82
    def test_get_preference_str(self):
 
86
83
        """Check whether a string preference can be retrieved."""
 
88
 
        x.set_preference("bla", "bloe")
 
89
 
        self.assertEqual("bloe", x.get_preference("bla"))
 
 
84
        self.prefs.set_preference("bla", "bloe")
 
 
85
        self.assertEqual("bloe", self.prefs.get_preference("bla"))
 
91
87
    def test_get_preference_nonexistant(self):
 
92
88
        """Check whether get_preference returns None for nonexisting 
 
95
 
        self.assertEqual(None, x.get_preference("foo"))
 
 
90
        self.assertEqual(None, self.prefs.get_preference("foo"))