Merge pull request #5957 from edx/adam/disable-purchase-button-on-click
disable "go to payment button" on click (ECOM-643)
This commit is contained in:
@@ -140,6 +140,20 @@ class TestCreateOrderView(ModuleStoreTestCase):
|
|||||||
self.assertEquals(response.status_code, 400)
|
self.assertEquals(response.status_code, 400)
|
||||||
self.assertIn('This course doesn\'t support verified certificates', response.content)
|
self.assertIn('This course doesn\'t support verified certificates', response.content)
|
||||||
|
|
||||||
|
@patch.dict(settings.FEATURES, {'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING': True})
|
||||||
|
def test_create_order_fail_with_get(self):
|
||||||
|
"""
|
||||||
|
Test that create_order will not work if wrong http method used
|
||||||
|
"""
|
||||||
|
create_order_post_data = {
|
||||||
|
'contribution': 50,
|
||||||
|
'course_id': self.course_id,
|
||||||
|
'face_image': ',',
|
||||||
|
'photo_id_image': ','
|
||||||
|
}
|
||||||
|
response = self.client.get(reverse('verify_student_create_order'), create_order_post_data)
|
||||||
|
self.assertEqual(response.status_code, 405)
|
||||||
|
|
||||||
@patch.dict(settings.FEATURES, {'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING': True})
|
@patch.dict(settings.FEATURES, {'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING': True})
|
||||||
def test_create_order_success(self):
|
def test_create_order_success(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ class VerifiedView(View):
|
|||||||
return render_to_response('verify_student/verified.html', context)
|
return render_to_response('verify_student/verified.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
@require_POST
|
||||||
@login_required
|
@login_required
|
||||||
def create_order(request):
|
def create_order(request):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ define(['backbone', 'jquery', 'js/verify_student/photocapture'],
|
|||||||
describe("Photo Verification", function () {
|
describe("Photo Verification", function () {
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
setFixtures('<div id="order-error" style="display: none;"></div><input type="radio" name="contribution" value="35" id="contribution-35" checked="checked"><input type="radio" id="contribution-other" name="contribution" value=""><input type="text" size="9" name="contribution-other-amt" id="contribution-other-amt" value="30"><img id="face_image" src="src="data:image/png;base64,dummy"><img id="photo_id_image" src="src="data:image/png;base64,dummy">');
|
setFixtures('<div id="order-error" style="display: none;"></div><input type="radio" name="contribution" value="35" id="contribution-35" checked="checked"><input type="radio" id="contribution-other" name="contribution" value=""><input type="text" size="9" name="contribution-other-amt" id="contribution-other-amt" value="30"><img id="face_image" src="src="data:image/png;base64,dummy"><img id="photo_id_image" src="src="data:image/png;base64,dummy"><button id="pay_button">pay button</button>');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('retake photo', function () {
|
it('retake photo', function () {
|
||||||
@@ -27,6 +27,7 @@ define(['backbone', 'jquery', 'js/verify_student/photocapture'],
|
|||||||
});
|
});
|
||||||
submitToPaymentProcessing();
|
submitToPaymentProcessing();
|
||||||
expect(window.submitForm).toHaveBeenCalled();
|
expect(window.submitForm).toHaveBeenCalled();
|
||||||
|
expect($("#pay_button")).toHaveClass("is-disabled");
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Error during process', function () {
|
it('Error during process', function () {
|
||||||
@@ -36,8 +37,18 @@ define(['backbone', 'jquery', 'js/verify_student/photocapture'],
|
|||||||
spyOn($, "ajax").andCallFake(function (e) {
|
spyOn($, "ajax").andCallFake(function (e) {
|
||||||
e.error({});
|
e.error({});
|
||||||
});
|
});
|
||||||
|
spyOn($.fn, "addClass").andCallThrough();
|
||||||
|
spyOn($.fn, "removeClass").andCallThrough();
|
||||||
|
|
||||||
submitToPaymentProcessing();
|
submitToPaymentProcessing();
|
||||||
expect(window.showSubmissionError).toHaveBeenCalled();
|
expect(window.showSubmissionError).toHaveBeenCalled();
|
||||||
|
|
||||||
|
// make sure the button isn't disabled
|
||||||
|
expect($("#pay_button")).not.toHaveClass("is-disabled");
|
||||||
|
|
||||||
|
// but also make sure that it was disabled during the ajax call
|
||||||
|
expect($.fn.addClass).toHaveBeenCalledWith("is-disabled");
|
||||||
|
expect($.fn.removeClass).toHaveBeenCalledWith("is-disabled");
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ function refereshPageMessage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var submitToPaymentProcessing = function() {
|
var submitToPaymentProcessing = function() {
|
||||||
|
$("#pay_button").addClass('is-disabled');
|
||||||
var contribution_input = $("input[name='contribution']:checked")
|
var contribution_input = $("input[name='contribution']:checked")
|
||||||
var contribution = 0;
|
var contribution = 0;
|
||||||
if(contribution_input.attr('id') == 'contribution-other') {
|
if(contribution_input.attr('id') == 'contribution-other') {
|
||||||
@@ -95,6 +96,7 @@ var submitToPaymentProcessing = function() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
error:function(xhr,status,error) {
|
error:function(xhr,status,error) {
|
||||||
|
$("#pay_button").removeClass('is-disabled');
|
||||||
showSubmissionError()
|
showSubmissionError()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var submitToPaymentProcessing = function(event) {
|
var submitToPaymentProcessing = function(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
$("#pay_button").addClass("is-disabled");
|
||||||
var xhr = $.post(
|
var xhr = $.post(
|
||||||
"${create_order_url}",
|
"${create_order_url}",
|
||||||
{
|
{
|
||||||
@@ -30,7 +31,9 @@ var submitToPaymentProcessing = function(event) {
|
|||||||
.done(function(data) {
|
.done(function(data) {
|
||||||
$("#pay_form").submit();
|
$("#pay_form").submit();
|
||||||
})
|
})
|
||||||
.fail(function(jqXhr,text_status, error_thrown) { alert(jqXhr.responseText); });
|
.fail(function(jqXhr,text_status, error_thrown) {
|
||||||
|
$("#pay_button").removeClass("is-disabled");
|
||||||
|
alert(jqXhr.responseText); });
|
||||||
}
|
}
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#pay_button").click(submitToPaymentProcessing);
|
$("#pay_button").click(submitToPaymentProcessing);
|
||||||
|
|||||||
Reference in New Issue
Block a user