29
29
from magicicada import MagicicadaUI, CONTENT_QUEUE, META_QUEUE, syncdaemon
30
30
from magicicada.dbusiface import QueueData, FolderData, ShareData
31
from magicicada.helpers import NO_OP
31
from magicicada.helpers import NO_OP, humanize_bytes
33
33
def process_gtk_pendings():
34
34
while gtk.events_pending(): gtk.main_iteration()
658
658
msg % (self.name, '' if enabled else 'not '))
660
660
@skip_abstract_class
661
def test_volume_are_disabled_until_online(self):
661
def test_volume_are_disabled_until_started(self):
662
662
"""Folders and shares are disabled until online."""
663
663
# disabled at startup
664
664
self.assert_volume_availability(enabled=False)
666
# disabled even if connected
668
self.assert_volume_availability(enabled=False)
670
# enabled when online
666
# enabled when started
672
668
self.assert_volume_availability(enabled=True)
674
670
@skip_abstract_class
675
def test_volume_are_enabled_until_offline(self):
671
def test_volume_are_enabled_until_stopped(self):
676
672
"""Folders and shares are enabled until offline."""
677
673
self.do_connect()
674
self.assert_volume_availability(enabled=True)
678
676
self.ui.on_online()
677
self.assert_volume_availability(enabled=True)
680
# disabled when offline
681
679
self.ui.on_offline()
680
self.assert_volume_availability(enabled=True)
682
self.ui.on_disconnect_clicked(self.ui.disconnect)
683
self.ui.on_disconnected()
684
self.assert_volume_availability(enabled=True)
686
# disabled when stopped
687
self.ui.on_stop_clicked(self.ui.stop)
688
self.assert_volume_availability(enabled=False)
682
690
self.assert_volume_availability(enabled=False)
684
692
@skip_abstract_class
766
774
self.assertEqual(expected, actual,
767
775
msg % (self.volume_dialog_name, expected, actual))
770
777
class MagicicadaUIFoldersTestCase(_MagicicadaUIVolumeTestCase):
771
778
"""UI test cases for folders."""
774
781
data_type = FolderData # node path suggested_path subscribed volume
777
class MagicicadaUISharesToMeTestCase(_MagicicadaUIVolumeTestCase):
784
class _MagicicadaUISharesTestCase(_MagicicadaUIVolumeTestCase):
778
785
"""UI test cases for shares_to_me."""
780
name = 'shares_to_me'
781
787
data_type = ShareData # accepted access_level free_bytes name node_id
782
788
# other_username other_visible_name path volume_id
791
def test_bytes_are_humanized(self):
792
"""Free bytes are shown humanized."""
793
attrs = self.data_type._fields
794
kwargs = dict([(attr, str(attr)) for attr in attrs])
795
kwargs['free_bytes'] = 10000
796
item = self.data_type(**kwargs)
797
setattr(self.ui.sd, self.name, [item])
800
"""Perform the test per se before closing the dialog."""
801
kwargs['free_bytes'] = humanize_bytes(kwargs['free_bytes'],
803
item = self.data_type(**kwargs)
804
self.assert_store_correct(self.volume_store, [item])
806
gobject.timeout_add(100, close_dialog,
807
(self.volume_dialog, test))
808
self.on_volume_clicked(self.volume)
811
class MagicicadaUISharesToMeTestCase(_MagicicadaUISharesTestCase):
812
"""UI test cases for shares_to_me."""
814
name = 'shares_to_me'
817
class MagicicadaUISharesToOthersTestCase(_MagicicadaUISharesTestCase):
818
"""UI test cases for shares_to_others."""
820
name = 'shares_to_others'