571
569
self.shown = True
574
class FakeCPBackend(object):
575
"""Fake Control Panel backend."""
577
def account_info(self, *args):
578
"""Fake account info."""
579
return defer.succeed({"quota_total": 1000})
582
class FakeAddFolderButton(object):
583
"""Fake Control Panel "Add Folder" button."""
584
backend = FakeCPBackend()
587
class LocalFoldersTestCase(BaseTestCase):
588
"""Test the LocalFoldersPage code."""
590
class_ui = local_folders.LocalFoldersPage
593
"""Initialize this test instance."""
594
# Create a test folder with a known size
595
self.tmpdir = tempfile.mkdtemp()
596
f = open(os.path.join(self.tmpdir, 'test_file'), 'wb')
599
os.mkdir(os.path.join(self.tmpdir, 'test_dir'))
600
f = open(os.path.join(self.tmpdir, 'test_dir', 'test_file_2'), 'wb')
603
super(LocalFoldersTestCase, self).setUp()
606
"""Remove the temporary tree."""
607
shutil.rmtree(self.tmpdir)
608
BaseTestCase.tearDown(self)
610
def test_size_calculation(self):
611
"""Test the recursive folder size calculation."""
612
queue = Queue.Queue()
613
csize = local_folders.CalculateSize(self.tmpdir, queue)
615
path, size = queue.get()
616
self.assertEqual(path, self.tmpdir)
617
self.assertEqual(size, 1337)
619
def test_item_addition(self):
620
"""Add an item (plus the default one), then remove them."""
621
self.ui.add_folder(self.tmpdir)
622
self.assertEqual(4, self.ui.ui.folder_list.topLevelItemCount())
624
def test_total_size(self):
625
"""Test that the header reflects the change in item sizes."""
626
while self.ui.ui.folder_list.topLevelItemCount():
627
self.ui.on_folder_list_itemClicked(
628
self.ui.ui.folder_list.topLevelItem(0), 2)
629
self.assertEqual(0, self.ui.ui.folder_list.topLevelItemCount())
630
item = self.ui.add_folder(self.tmpdir)
634
self.ui.update_sizes()
635
self.assertEqual(unicode(self.ui.ui.folder_list.headerItem().text(1)),
638
def test_add_twice(self):
639
"""Behaviour for adding the same folder twice.
641
* It's added only once.
643
while self.ui.ui.folder_list.topLevelItemCount():
644
self.ui.on_folder_list_itemClicked(
645
self.ui.ui.folder_list.topLevelItem(0), 2)
646
self.assertEqual(0, self.ui.ui.folder_list.topLevelItemCount())
647
self.ui.add_folder(self.tmpdir)
648
self.ui.add_folder(self.tmpdir)
649
self.assertEqual(1, self.ui.ui.folder_list.topLevelItemCount())
651
def test_add_missing_folder(self):
652
"""Behaviour for adding a folder that doesn't exist.
658
while self.ui.ui.folder_list.topLevelItemCount():
659
self.ui.on_folder_list_itemClicked(
660
self.ui.ui.folder_list.topLevelItem(0), 2)
661
self.assertEqual(0, self.ui.ui.folder_list.topLevelItemCount())
662
item = self.ui.add_folder(os.path.join("xyzzy", "xyzzy", "xyzzy"))
663
self.assertEqual(1, self.ui.ui.folder_list.topLevelItemCount())
666
self.ui.update_sizes()
667
self.assertEqual(0, item.size)
668
# world did not explode
670
def test_over_quota(self):
671
"""After removing all folders, offer_frame should be hidden.
673
Push the user over quota, it should be visible.
675
self.patch(self.ui.ui.offer_frame, "setVisible", self._set_called)
676
while self.ui.ui.folder_list.topLevelItemCount():
677
self.ui.on_folder_list_itemClicked(
678
self.ui.ui.folder_list.topLevelItem(0), 2)
679
self.assertEqual(0, self.ui.ui.folder_list.topLevelItemCount())
680
self.ui.update_sizes()
681
self.assertEqual(self._called, ((False,), {}))
682
self.ui.show_hide_offer(self.ui.quota() + 1)
683
self.assertEqual(self._called, ((True,), {}))
686
LocalFoldersTestCase.skip = 'We need to re-write this test case entirely,' \
687
'see bug #824675 for reference.'
572
class FakeWizard(object):
573
"""Replace wizard() function on wizard pages."""
577
# Invalid name "setButtonLayout"
578
# pylint: disable=C0103
580
def setButtonLayout(self, *args, **kwargs):
581
"""Fake the functionality of setButtonLayout on QWizard class."""
582
FakeWizard.params = (args, kwargs)
584
# pylint: enable=C0103
690
587
class FakeWizard(object):