forms: autosave when user asks for tracking code popup (#26630)
This commit is contained in:
parent
fde53b65d6
commit
2bb5875a6e
|
@ -1409,22 +1409,31 @@ def test_form_empty_tracking_code(pub):
|
|||
def test_form_tracking_code_email(pub, emails):
|
||||
formdef = create_formdef()
|
||||
formdef.data_class().wipe()
|
||||
formdef.fields = [fields.StringField(id='0', label='string')]
|
||||
formdef.fields = [fields.StringField(id='0', label='string'),
|
||||
fields.StringField(id='1', label='string2')]
|
||||
formdef.enable_tracking_codes = True
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': 'foobar'}
|
||||
formdata.tracking_code = 'ABCDEF'
|
||||
formdata.store()
|
||||
app = get_app(pub)
|
||||
resp = app.get('/test/')
|
||||
resp.form['f0'] = 'barfoo'
|
||||
# autosave will be made using javascript in real world
|
||||
app.post('/test/autosave', params=resp.form.submit_fields())
|
||||
|
||||
resp = get_app(pub).get('/test/code/ABCDEF/')
|
||||
tracking_code = get_displayed_tracking_code(resp)
|
||||
assert tracking_code is not None
|
||||
|
||||
resp = get_app(pub).get('/test/code/%s/' % tracking_code)
|
||||
assert '<h2>Keep your tracking code</h2>' in resp.body
|
||||
resp.forms[0]['email'] = 'foo@localhost'
|
||||
resp = resp.forms[0].submit()
|
||||
assert emails.emails.get('Tracking Code reminder')
|
||||
assert 'ABCDEF' in emails.emails.values()[0]['payload']
|
||||
assert resp.location == 'http://example.net/test/code/ABCDEF/load'
|
||||
assert tracking_code in emails.emails.values()[0]['payload']
|
||||
assert resp.location == 'http://example.net/test/code/%s/load' % tracking_code
|
||||
resp = resp.follow()
|
||||
resp = resp.follow()
|
||||
resp = resp.follow()
|
||||
assert resp.forms[1]['f0'].value == 'barfoo'
|
||||
|
||||
def test_form_tracking_code_remove_draft(pub):
|
||||
formdef = create_formdef()
|
||||
|
|
|
@ -27,6 +27,7 @@ $(function() {
|
|||
});
|
||||
}
|
||||
timeout_id = window.setTimeout(autosave, 5000);
|
||||
$('#tracking-code a').on('click', autosave);
|
||||
}
|
||||
$('.date-pick').each(function() {
|
||||
var $date_input = $(this);
|
||||
|
|
Loading…
Reference in New Issue