summaryrefslogtreecommitdiff
path: root/trunk/dimbola/taglist_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/dimbola/taglist_tests.py')
-rw-r--r--trunk/dimbola/taglist_tests.py115
1 files changed, 115 insertions, 0 deletions
diff --git a/trunk/dimbola/taglist_tests.py b/trunk/dimbola/taglist_tests.py
new file mode 100644
index 0000000..32ccfd7
--- /dev/null
+++ b/trunk/dimbola/taglist_tests.py
@@ -0,0 +1,115 @@
+# Copyright (C) 2009 Lars Wirzenius <liw@liw.fi>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+import unittest
+
+import gtk
+
+import dimbola
+
+
+class TaglistTests(unittest.TestCase):
+
+ '''Show/edit selected photo's tags.'''
+
+ def setUp(self):
+ self.textview = gtk.TextView()
+
+ self.taglist = dimbola.Taglist(self.textview, None, None)
+
+ self.photoid = 12
+
+ self.tagid = 34
+ self.tagname = 'yeehaa'
+ self.text_tag_name = 'taglist-photoid-12-tagid-34'
+
+ self.tagid2 = 56
+ self.tagname2 = 'blib'
+ self.text_tag_name2 = 'taglist-photoid-12-tagid-56'
+
+ self.tags = [(self.tagid, self.tagname), (self.tagid2, self.tagname2)]
+
+ def test_creates_text_tag_name_correctly(self):
+ self.assertEqual(self.taglist.text_tag_name(self.photoid, self.tagid),
+ self.text_tag_name)
+
+ def test_recognizes_its_text_tag_name(self):
+ self.assert_(self.taglist.is_our_text_tag_name(self.text_tag_name))
+
+ def test_parses_text_tag_name_correctly(self):
+ self.assertEqual(self.taglist.parse_text_tag_name(self.text_tag_name),
+ (self.photoid, self.tagid))
+
+ def test_has_no_text_tags_initially(self):
+ self.assertEqual(self.taglist.text_tag_names, [])
+
+ def test_set_tags_results_in_text_tags(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ self.assertEqual(self.taglist.text_tag_names,
+ [self.text_tag_name, self.text_tag_name2])
+
+ def test_set_tags_results_in_buffer_text(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ start, end = self.taglist.buf.get_bounds()
+ text = self.taglist.buf.get_text(start, end)
+ # Note that we assume tagname2 comes before tagname in sorted order.
+ self.assertEqual(text, '%s; %s' % (self.tagname2, self.tagname))
+
+ def test_clear_empties_text(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ self.taglist.clear()
+ start, end = self.taglist.buf.get_bounds()
+ text = self.taglist.buf.get_text(start, end)
+ self.assertEqual(text, '')
+
+ def test_clear_empties_text_tags(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ self.taglist.clear()
+ self.assertEqual(self.taglist.text_tag_names, [])
+
+ def test_finds_ids_at_iter(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ it = self.taglist.buf.get_iter_at_offset(0)
+ photoid, tagid = self.taglist.iter_to_ids(it)
+ self.assertEqual(photoid, self.photoid)
+ self.assertEqual(tagid, self.tagid2)
+
+ def test_finds_no_ids_outside_tags(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ it = self.taglist.buf.get_end_iter()
+ self.assertEqual(self.taglist.iter_to_ids(it), (None, None))
+
+ def test_selects_tagname_at_iterator(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ it = self.taglist.buf.get_iter_at_offset(0)
+ self.taglist.select_tagname_at_iter(it)
+
+ ins = self.taglist.buf.get_insert()
+ ins_it = self.taglist.buf.get_iter_at_mark(ins)
+ self.assertEqual(ins_it.get_offset(), 0)
+
+ sel = self.taglist.buf.get_selection_bound()
+ sel_it = self.taglist.buf.get_iter_at_mark(sel)
+ self.assertEqual(sel_it.get_offset(), len(self.tagname2))
+
+ def test_returns_correct_tagid_when_tagname_is_selected(self):
+ self.taglist.set_tags(self.photoid, self.tags)
+ it = self.taglist.buf.get_iter_at_offset(0)
+ self.taglist.select_tagname_at_iter(it)
+
+ self.assertEqual(self.taglist.selected_tag(),
+ (self.photoid, self.tagid2))
+