Chromium Code Reviews| Index: appengine/config_service/ui/test/config-ui/front-page_test.html |
| diff --git a/appengine/config_service/ui/test/config-ui/front-page_test.html b/appengine/config_service/ui/test/config-ui/front-page_test.html |
| index 6c7f1e8d3b42006b43920b46449ed2fe989e0c19..8b54a18e7542b93836c2a4cf39efae2ee0510d6d 100644 |
| --- a/appengine/config_service/ui/test/config-ui/front-page_test.html |
| +++ b/appengine/config_service/ui/test/config-ui/front-page_test.html |
| @@ -143,6 +143,103 @@ |
| }.bind(front_page)); |
| }); |
| }); |
| + |
| + suite('Front page handles ajax errors correctly', function() { |
| + var ajax; |
| + var request; |
| + var server500; |
| + var server403; |
| + var server400; |
| + var responseHeaders = { |
| + json: { 'Content-Type': 'application/json' } |
| + }; |
| + var front_page; |
| + setup(function() { |
| + server500 = sinon.fakeServer.create(); |
|
Sergey Berezin
2017/07/26 23:09:13
Suggestion: instead of using setup(), how about cr
|
| + var param500 = { |
| + error: { |
| + code: 500, |
| + message: "Internal Server Error." |
| + } |
| + } |
| + server500.respondWith( |
| + 'GET', |
| + /\/_ah\/api\/config\/v1\/config-sets\?include_last_import_attempt=true/, |
| + [ |
| + 500, |
| + responseHeaders.json, |
| + JSON.stringify(param500) |
| + ] |
| + ); |
| + |
| + server403 = sinon.fakeServer.create(); |
| + var param403 = { |
| + error: { |
| + code: 403, |
| + message: "The request returned with a status of 403." |
| + } |
| + } |
| + server403.respondWith( |
| + 'GET', |
| + /\/_ah\/api\/config\/v1\/config-sets\?include_last_import_attempt=true/, |
| + [ |
| + 403, |
| + responseHeaders.json, |
| + JSON.stringify(param403) |
| + ] |
| + ); |
| + |
| + server400 = sinon.fakeServer.create(); |
| + var param400 = { |
| + error: { |
| + code: 400, |
| + message: "This error represents all errors that are not forbidden or internal server errors." |
| + } |
| + } |
| + server400.respondWith( |
| + 'GET', |
| + /\/_ah\/api\/config\/v1\/config-sets\?include_last_import_attempt=true/, |
| + [ |
| + 400, |
| + responseHeaders.json, |
| + JSON.stringify(param400) |
| + ] |
| + ); |
| + front_page = fixture('front-pageTestFixture'); |
| + ajax = Polymer.dom(front_page.root).querySelector('iron-ajax'); |
| + }); |
| + |
| + teardown(function() { |
| + server500.restore(); |
| + server403.restore(); |
| + server400.restore(); |
| + }); |
| + |
| + test('front page handles 500 error', function() { |
| + request = ajax.generateRequest(); |
| + server500.respond(); |
| + front_page.addEventListener('fetchError', function() { |
| + expect(front_page.errorMessage).to.be |
| + .equal("Internal server error. Please refresh or try again later."); |
| + }) |
| + }); |
| + |
| + test('front page handles 403 error', function() { |
| + request = ajax.generateRequest(); |
| + server403.respond(); |
| + front_page.addEventListener('fetchError', function() { |
| + expect(front_page.errorMessage).to.be.equal("Access denied."); |
| + }) |
| + }); |
| + |
| + test('front page handles error that is not 403 or 500', function() { |
| + request = ajax.generateRequest(); |
| + server400.respond(); |
| + front_page.addEventListener('fetchError', function() { |
| + expect(front_page.errorMessage).to.be.equal("Error occured. Please try again later."); |
| + }) |
| + }); |
| + }); |
| </script> |
| </body> |
| </html> |