Ignore:
Timestamp:
3 Jan 2015, 15:28:53 (10 years ago)
Author:
Henrik Bettermann
Message:

Uups, we agreed to attach only one file to each document.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/tests/test_browser.py

    r12369 r12382  
    213213    layer = FunctionalLayer
    214214
    215     def test_manage_upload_pdf_file(self):
     215    def test_manage_upload_sample_file(self):
    216216        # Managers can upload a file via the DocumentManageFormPage
    217217        # The image is stored even if form has errors
    218218        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    219         self.browser.open(self.customer_path + '/documents')
    220         self.browser.getControl("Add document").click()
    221         self.browser.getControl(name="doctype").value = ['SkeletonCustomerDocument']
    222         self.browser.getControl(name="form.title").value = 'My Skeleton Document'
    223         self.browser.getControl("Add document").click()
    224         docid = [i for i in self.customer['documents'].keys() if len(i) > 10][0]
    225         self.browser.open(self.documents_path + '/%s/manage' % docid)
     219        self.browser.open(self.customer_path + '/documents/DOC1/manage')
    226220        # Create a pseudo image file and select it to be uploaded
    227221        image = open(SAMPLE_IMAGE, 'rb')
    228         ctrl = self.browser.getControl(name='pdfscanmanageupload')
     222        ctrl = self.browser.getControl(name='samplescanmanageupload')
     223        file_ctrl = ctrl.mech_control
     224        file_ctrl.add_file(image, filename='my_sample_scan.jpg')
     225        # The Save action does not upload files
     226        self.browser.getControl("Save").click() # submit form
     227        self.assertFalse(
     228            'href="http://localhost/app/customers/K1000000/documents/DOC1/sample"'
     229            in self.browser.contents)
     230        # ... but the correct upload submit button does
     231        image = open(SAMPLE_IMAGE)
     232        ctrl = self.browser.getControl(name='samplescanmanageupload')
    229233        file_ctrl = ctrl.mech_control
    230234        file_ctrl.add_file(image, filename='my_sample_scan.jpg')
    231235        self.browser.getControl(
    232             name='upload_pdfscanmanageupload').click()
    233         self.assertTrue(
    234             'pdf file extension expected' in self.browser.contents)
    235         ctrl = self.browser.getControl(name='pdfscanmanageupload')
    236         file_ctrl = ctrl.mech_control
    237         file_ctrl.add_file(image, filename='my_sample_scan.pdf')
     236            name='upload_samplescanmanageupload').click()
     237        self.assertTrue(
     238            'href="http://localhost/app/customers/K1000000/documents/DOC1/sample"'
     239            in self.browser.contents)
     240        # Browsing the link shows a real image
     241        self.browser.open('sample')
     242        self.assertEqual(
     243            self.browser.headers['content-type'], 'image/jpeg')
     244        self.assertEqual(len(self.browser.contents), 2787)
     245        # We can't reupload a file. The existing file must be deleted first.
     246        self.browser.open(self.customer_path + '/documents/DOC1/manage')
     247        self.assertFalse(
     248            'upload_samplescanmanageupload' in self.browser.contents)
     249        # File must be deleted first
     250        self.browser.getControl(name='delete_samplescanmanageupload').click()
     251        self.assertTrue(
     252            'sample deleted' in self.browser.contents)
     253        # Uploading a file which is bigger than 150k will raise an error
     254        big_image = StringIO(open(SAMPLE_IMAGE, 'rb').read() * 75)
     255        ctrl = self.browser.getControl(name='samplescanmanageupload')
     256        file_ctrl = ctrl.mech_control
     257        file_ctrl.add_file(big_image, filename='my_sample_scan.jpg')
    238258        self.browser.getControl(
    239             name='upload_pdfscanmanageupload').click()
    240         self.assertTrue(
    241             'Could not determine file type' in self.browser.contents)
    242         pdf = open(SAMPLE_PDF, 'rb')
    243         ctrl = self.browser.getControl(name='pdfscanmanageupload')
    244         file_ctrl = ctrl.mech_control
    245         file_ctrl.add_file(pdf, filename='my_sample_scan.pdf')
     259            name='upload_samplescanmanageupload').click()
     260        self.assertTrue(
     261            'Uploaded file is too big' in self.browser.contents)
     262        # We do not rely on filename extensions given by uploaders
     263        image = open(SAMPLE_IMAGE, 'rb') # a jpg-file
     264        ctrl = self.browser.getControl(name='samplescanmanageupload')
     265        file_ctrl = ctrl.mech_control
     266        # Tell uploaded file is bmp
     267        file_ctrl.add_file(image, filename='my_sample_scan.bmp')
    246268        self.browser.getControl(
    247             name='upload_pdfscanmanageupload').click()
    248         self.assertTrue(
    249             'href="http://localhost/app/customers/K1000000/documents/%s/sample.pdf">PDF File</a>'
    250             % docid in self.browser.contents)
    251         # Browsing the link shows a real pdf
    252         self.browser.open('sample.pdf')
    253         self.assertEqual(
    254             self.browser.headers['content-type'], 'application/pdf')
     269            name='upload_samplescanmanageupload').click()
     270        self.assertTrue(
     271            # jpg file was recognized
     272            'File sample.jpg uploaded.' in self.browser.contents)
     273        # Delete file again
     274        self.browser.getControl(name='delete_samplescanmanageupload').click()
     275        self.assertTrue(
     276            'sample deleted' in self.browser.contents)
     277        # File names must meet several conditions
     278        bmp_image = open(SAMPLE_IMAGE_BMP, 'rb')
     279        ctrl = self.browser.getControl(name='samplescanmanageupload')
     280        file_ctrl = ctrl.mech_control
     281        file_ctrl.add_file(bmp_image, filename='my_sample_scan.bmp')
     282        self.browser.getControl(
     283            name='upload_samplescanmanageupload').click()
     284        self.assertTrue('Only the following extensions are allowed'
     285            in self.browser.contents)
    255286
    256287class ContractUITests(CustomersFullSetup):
Note: See TracChangeset for help on using the changeset viewer.