def test_add_new_item_to_storage(self): storage = IDownloadTokenStorage(self.portal) file_ = create(Builder('file')) added = storage.add(file_, '*****@*****.**') self.assertEquals(1, len(storage.get_storage()), 'Expect one item in storage') self.assertTrue( isinstance(storage.get_storage()[0], DownloadToken), 'Item is not a DownloadToken instance.') self.assertEquals(added, storage.get_storage()[0])
def test_remove_item_from_storage(self): storage = IDownloadTokenStorage(self.portal) file_ = create(Builder('file')) added = storage.add(file_, '*****@*****.**') storage.remove(added) self.assertFalse(len(storage.get_storage()), 'Storage should be empty.')
def test_storage_cleanup(self): storage = IDownloadTokenStorage(self.portal) file_ = create(Builder('file')) expiredtoken1 = storage.add(file_, '*****@*****.**') expiredtoken2 = storage.add(file_, '*****@*****.**') expiredtoken1.expiration_date = datetime.now() - timedelta(days=10) expiredtoken2.expiration_date = datetime.now() - timedelta(days=20) self.assertEquals(2, len(storage.get_storage()), 'Expect two items') validtoken = storage.add(file_, '*****@*****.**') self.assertEquals(1, len(storage.get_storage()), 'Expect only the last added item. The others are ' 'expired and removed.') self.assertEquals(validtoken.token, storage.get_storage()[0].token, 'Found the wrong token.')
def test_extend_strorage(self): storage = IDownloadTokenStorage(self.portal) storage.get_storage().append('data') self.assertEquals(1, len(storage.get_storage()))
def test_initialize_storage(self): storage = IDownloadTokenStorage(self.portal) self.assertTrue(isinstance(storage.get_storage(), PersistentList), 'It has to be something persistent.')
class TestStorage(TestCase): layer = FTW_DOWNLOADTOKEN_FUNCTIONAL_TESTING def setUp(self): self.portal = self.layer['portal'] self.mails = Mailing(self.portal) self.mails.set_up() self.storage = IDownloadTokenStorage(self.portal) wftool = getToolByName(self.portal, 'portal_workflow') wftool.setChainForPortalTypes(('Folder',), ('plone_workflow',)) transaction.commit() folder = create(Builder('folder').in_state('private')) self.file_ = create(Builder('file') .titled('\xc3\xa4 file') .with_dummy_content() .within(folder)) def tearDown(self): Mailing(self.layer['portal']).tear_down() @browsing def test_send_mail_form(self, browser): browser.login().visit(self.file_, view='send-mail-form') browser.fill({'Recipients': '*****@*****.**'}) browser.find('Send').click() self.assertEquals(1, len(self.mails.get_messages()), 'Expect one message') self.assertEquals('{0}/view'.format(self.file_.absolute_url()), browser.url) @browsing def test_send_mail_journalized(self, browser): eventtesting.clearEvents() browser.login().visit(self.file_, view='send-mail-form') browser.fill({'Recipients': '*****@*****.**', 'Comment': 'Test'}) browser.find('Send').click() events = [e for e in eventtesting.getEvents() if IJournalEntryEvent.providedBy(e)] self.assertEqual(1, len(events)) self.assertIn( '*****@*****.**', self.file_.translate(events[0].action)) self.assertEqual(u'Test', events[0].comment) @browsing def test_cancel_send_mail_form(self, browser): browser.login().visit(self.file_, view='send-mail-form') browser.find('Cancel').click() self.assertEquals(0, len(self.mails.get_messages()), 'Expect one message') self.assertEquals('{0}/view'.format(self.file_.absolute_url()), browser.url) @browsing def test_link_in_mail(self, browser): browser.login().visit(self.file_, view='send-mail-form') browser.fill({'Recipients': '*****@*****.**'}) browser.find('Send').click() mail = self.mails.pop() url = get_link_from_email(mail) browser.logout().open(url) self.assertEquals('Test data', browser.contents) with self.assertRaises(Unauthorized): browser.visit(self.file_) @browsing def test_multiple_recipients(self, browser): browser.login().visit(self.file_, view='send-mail-form') browser.fill({'Recipients': '[email protected]\[email protected]'}) browser.find('Send').click() self.assertEquals(2, len(self.mails.get_messages()), 'Expect two messages') self.assertEquals(2, len(self.storage.get_storage()), 'Expect two items') @browsing def test_send_mail_form_valid_email_addresses(self, browser): browser.login().visit(self.file_, view='send-mail-form') browser.fill({'Recipients': 'email@example\[email protected]'}) browser.find('Send').click() statusmessages.error_messages() self.assertFalse(len(self.storage.get_storage()), 'Expect no tokens.') browser.fill({'Recipients': u'em\xe4il@example'}) statusmessages.error_messages()