Merge pull request #3742 from alphagov/fix-for-file-input-in-safari

Fix for file input bug in safari
This commit is contained in:
Tom Byers
2020-12-17 14:24:25 +00:00
committed by GitHub
21 changed files with 53 additions and 6 deletions

View File

@@ -61,6 +61,7 @@ def test_edit_email_branding_shows_the_correct_branding_info(
assert page.select_one('#logo-img > img')['src'].endswith('/example.png')
assert page.select_one('#name').attrs.get('value') == 'Organisation name'
assert page.select_one('#file').attrs.get('accept') == '.png'
assert page.select_one('#text').attrs.get('value') == 'Organisation text'
assert page.select_one('#colour').attrs.get('value') == '#f00'
@@ -79,6 +80,7 @@ def test_create_email_branding_does_not_show_any_branding_info(
assert page.select_one('#logo-img > img') is None
assert page.select_one('#name').attrs.get('value') is None
assert page.select_one('#file').attrs.get('accept') == '.png'
assert page.select_one('#text').attrs.get('value') is None
assert page.select_one('#colour').attrs.get('value') is None

View File

@@ -62,6 +62,7 @@ def test_update_letter_branding_shows_the_current_letter_brand(
assert page.find('h1').text == 'Update letter branding'
assert page.select_one('#logo-img > img')['src'].endswith('/hm-government.svg')
assert page.select_one('#name').attrs.get('value') == 'HM Government'
assert page.select_one('#file').attrs.get('accept') == '.svg'
def test_update_letter_branding_with_new_valid_file(
@@ -312,6 +313,7 @@ def test_create_letter_branding_does_not_show_branding_info(platform_admin_clien
assert page.select_one('#logo-img > img') is None
assert page.select_one('#name').attrs.get('value') is None
assert page.select_one('#file').attrs.get('accept') == '.svg'
def test_create_letter_branding_when_uploading_valid_file(

View File

@@ -308,6 +308,8 @@ def test_example_spreadsheet(
) == (
'1 phone number name date'
)
assert page.select_one('input[type=file]').has_attr('accept')
assert page.select_one('input[type=file]')['accept'] == '.csv,.xlsx,.xls,.ods,.xlsm,.tsv'
def test_example_spreadsheet_for_letters(
@@ -505,6 +507,11 @@ def test_upload_csv_file_with_errors_shows_check_page_with_errors(
assert 'file_uploads' not in session
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.select_one('input[type=file]').has_attr('accept')
assert page.select_one('input[type=file]')['accept'] == '.csv,.xlsx,.xls,.ods,.xlsm,.tsv'
content = response.get_data(as_text=True)
assert 'Theres a problem with example.csv' in content
assert '+447700900986' in content
@@ -896,6 +903,8 @@ def test_upload_csv_file_with_missing_columns_shows_error(
with client_request.session_transaction() as session:
assert 'file_uploads' not in session
assert page.select_one('input[type=file]').has_attr('accept')
assert page.select_one('input[type=file]')['accept'] == '.csv,.xlsx,.xls,.ods,.xlsm,.tsv'
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == expected_error

View File

@@ -18,6 +18,7 @@ def test_upload_contact_list_page(client_request):
assert 'action' not in page.select_one('form')
assert page.select_one('form input')['name'] == 'file'
assert page.select_one('form input')['type'] == 'file'
assert page.select_one('form input')['accept'] == '.csv,.xlsx,.xls,.ods,.xlsm,.tsv'
assert normalize_spaces(page.select('.spreadsheet')[0].text) == (
'Example A '
@@ -234,6 +235,7 @@ def test_upload_csv_file_shows_error_banner(
service_id=SERVICE_ONE_ID,
)
assert page.select_one('form input')['type'] == 'file'
assert page.select_one('form input')['accept'] == '.csv,.xlsx,.xls,.ods,.xlsm,.tsv'
assert normalize_spaces(page.select_one('thead').text) == expected_thead
assert normalize_spaces(page.select_one('tbody').text) == expected_tbody

View File

@@ -15,6 +15,7 @@ def test_get_upload_letter(client_request):
assert page.find('h1').text == 'Upload a letter'
assert page.find('input', class_='file-upload-field')
assert page.find('input', class_='file-upload-field')['accept'] == '.pdf'
assert page.select('main button[type=submit]')
assert normalize_spaces(page.find('label', class_='file-upload-button').text) == 'Choose file'
@@ -213,6 +214,7 @@ def test_post_upload_letter_shows_error_when_file_is_not_a_pdf(client_request):
assert page.find('h1').text == 'Wrong file type'
assert page.find('div', class_='banner-dangerous').find('p').text == 'Save your letter as a PDF and try again.'
assert normalize_spaces(page.find('label', class_='file-upload-button').text) == 'Upload your file again'
assert page.find('input', type='file')['accept'] == '.pdf'
def test_post_upload_letter_shows_error_when_no_file_uploaded(client_request):
@@ -346,6 +348,7 @@ def test_post_upload_letter_shows_letter_preview_for_invalid_file(mocker, client
assert page.find("a", {"class": "govuk-back-link"})["href"] == "/services/{}/upload-letter".format(SERVICE_ONE_ID)
assert page.find("label", {"class": "file-upload-button"})
assert page.find("input", {"type": "file"})["accept"] == '.pdf'
letter_images = page.select('main img')
assert len(letter_images) == 1