From 7a6044525cc099f77af271218fa7f84c5b458f47 Mon Sep 17 00:00:00 2001 From: Kegan Myers Date: Tue, 4 Mar 2014 16:51:55 -0600 Subject: [PATCH] Update error handling --- Gruntfile.js | 35 ++++++++++++++++++++++---- README.md | 5 +++- build/typertext.d.ts | 2 +- build/typertext.js | 17 +++++++++---- build/typertext.js.map | 2 +- karma.conf.js | 38 +++++++++++++++++++++++++++- lib/Typertext/Http/HttpException.ts | 2 +- lib/Typertext/Http/HttpRequest.ts | 39 ++++++++++++++++++++--------- package.json | 3 ++- 9 files changed, 115 insertions(+), 28 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 28f8c18..f799e8b 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,19 +2,44 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-karma'); grunt.loadNpmTasks('grunt-typescript'); + var sauceConf = { + linux: {opera: {low: 12, high: 12}, googlechrome: {low: 26, high: 32}, firefox: {low: 3, high: 27}}, + "OS X 10.9": {googlechrome: {low: 31, high: 31}, firefox: {low: 4, high: 26}}, + "OS X 10.8": {googlechrome: {low: 27, high: 32}, safari: {low: 6, high: 6}}, + "OS X 10.6": {googlechrome: {low: 27, high: 32}, safari: {low: 5, high: 5}, firefox: {low: 3, high: 27}}, + "Windows XP": {googlechrome: {low: 26, high: 32}, safari: {low: 3, high: 5}, opera: {low: 9, high: 12}, firefox: {low: 4, high: 27}}, + "Windows 7": {googlechrome: {low: 26, high: 32}, safari: {low: 5, high: 5}, opera: {low: 9, high: 12}, firefox: {low: 4, high: 27}}, + "Windows 8": {googlechrome: {low: 26, high: 32}, opera: {low: 9, high: 10}, firefox: {low: 4, high: 27}}, + "Windows 8.1": {googlechrome: {low: 26, high: 32}, opera: {low: 9, high: 10}, firefox: {low: 4, high: 27}} + }; + + var sauceBrowsers = []; + for (var operatingSystem in sauceConf) { + for (var browser in sauceConf[operatingSystem]) { + for (var i = sauceConf[operatingSystem][browser].low; i < sauceConf[operatingSystem][browser].high; i++) { + sauceBrowsers.push((operatingSystem + "_" + browser + "_" + i).toLowerCase().replace(" ", "-")); + } + } + } + + //TODO integrate with Sauce + var travisBrowsers = [];//sauceBrowsers.slice(0); + travisBrowsers.push("PhantomJS"); + grunt.initConfig({ karma: { - phantom: { + local: { configFile: "karma.conf.js", singleRun: true, - browsers: ["PhantomJS"] + browsers: ["Chrome", "PhantomJS"] }, - chrome: { + travis: { configFile: "karma.conf.js", singleRun: true, - browsers: ["Chrome"] + browsers: travisBrowsers }, watch: { + autoWatch: true, configFile: "karma.conf.js", browsers: ["PhantomJS", "Chrome"] } @@ -34,5 +59,5 @@ module.exports = function (grunt) { grunt.registerTask('default', ['typescript']); grunt.registerTask('test', ['typescript', 'karma:phantom', 'karma:chrome']); - grunt.registerTask('test:travis', ['typescript', 'karma:phantom']); + grunt.registerTask('test:travis', ['typescript', 'karma:travis']); }; \ No newline at end of file diff --git a/README.md b/README.md index 8ca6c95..3896da8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ Usage Todo ---- -- More robust error handling - IE 8-9 CORS support (XDomain) - Integrate with Sauce Labs @@ -30,6 +29,10 @@ This project is licensed under the MIT license, the text of which can be read in Changelog --------- +####0.4.0 +- Modify how exceptions are handled +- Steps toward Sauce integration + ####0.3.3 - Fix Post methods actually calling GET diff --git a/build/typertext.d.ts b/build/typertext.d.ts index 57234ad..676288d 100644 --- a/build/typertext.d.ts +++ b/build/typertext.d.ts @@ -36,7 +36,7 @@ declare module Typertext { } } declare module Typertext.Http { - class HttpException extends BaseException { + class HttpException extends BaseException { } } declare module Typertext.Http { diff --git a/build/typertext.js b/build/typertext.js index 9467f93..53a5354 100644 --- a/build/typertext.js +++ b/build/typertext.js @@ -117,26 +117,32 @@ var Typertext; if (typeof postData === "undefined") { postData = {}; } if (typeof callback === "undefined") { callback = function (c) { }; } + var noop = function (i) { + return ""; + }; + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function () { if (xhr.readyState == 4) { var getHeader = function (name) { return xhr.getResponseHeader(name); }; + if (xhr.status == 200) { callback(new Typertext.Http.HttpResponse(0 /* success */, getHeader, xhr.status, xhr.responseText)); } else if (xhr.status >= 400 && xhr.status < 500) { - throw new Typertext.Http.HttpException("Error type is unimplemented", -1, 2 /* clientError */); + throw new Typertext.Http.HttpException("The server returned an error response state", xhr.status, new Typertext.Http.HttpResponse(2 /* clientError */, getHeader, xhr.status, xhr.responseText)); } else if (xhr.status >= 500 && xhr.status < 600) { - throw new Typertext.Http.HttpException("Error type is unimplemented", -1, 1 /* serverError */); - } else { - throw new Typertext.Http.HttpException("An unknown error has occurred", -2, 4 /* unknownError */); + throw new Typertext.Http.HttpException("The server returned an error response state", xhr.status, new Typertext.Http.HttpResponse(1 /* serverError */, getHeader, xhr.status, xhr.responseText)); } + + throw new Typertext.Http.HttpException("An unknown error has occurred", -2, new Typertext.Http.HttpResponse(4 /* unknownError */, getHeader, xhr.status, xhr.responseText)); } }; xhr.ontimeout = function () { - callback(new Typertext.Http.HttpResponse(5 /* timeout */)); + throw new Typertext.Http.HttpException("The server took too long to respond to our request", -1, new Typertext.Http.HttpResponse(5 /* timeout */, noop, -1, "")); }; xhr.open(Typertext.Http.HttpMethod[method], request.ToString(), true); @@ -147,6 +153,7 @@ var Typertext; } xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(Typertext.Http.HttpUrl.UrlEncodeObject(postData)); }; return HttpRequest; diff --git a/build/typertext.js.map b/build/typertext.js.map index a3263c6..a998f03 100644 --- a/build/typertext.js.map +++ b/build/typertext.js.map @@ -1 +1 @@ -{"version":3,"file":"typertext.js","sourceRoot":"","sources":["../lib/Typertext/BaseException.ts","../lib/Typertext/GenericRequest.ts","../lib/Typertext/GenericResponse.ts","../lib/Typertext/GenericResponseHandler.ts","../lib/Typertext/Http/HttpException.ts","../lib/Typertext/Http/HttpMethod.ts","../lib/Typertext/Http/HttpPostData.ts","../lib/Typertext/Http/HttpProtocol.ts","../lib/Typertext/Http/HttpQueryString.ts","../lib/Typertext/Http/HttpRequest.ts","../lib/Typertext/Http/HttpResponse.ts","../lib/Typertext/Http/HttpResponseHandler.ts","../lib/Typertext/Http/HttpResponseStatus.ts","../lib/Typertext/Http/HttpUrl.ts","../lib/Typertext/Json/JsonException.ts","../lib/Typertext/Json/JsonObject.ts","../lib/Typertext/Json/JsonRequest.ts","../lib/Typertext/Json/JsonResponse.ts","../lib/Typertext/Json/JsonResponseHandler.ts"],"names":["Typertext","Typertext.BaseException","Typertext.BaseException.constructor","Typertext.BaseException.GetCode","Typertext.BaseException.GetMessage","Typertext.BaseException.GetCustom","Typertext.GenericResponse","Typertext.GenericResponse.constructor","Typertext.GenericResponse.GetContent","Typertext.GenericResponse.GetContentType","Typertext.GenericResponse.GetHeader","Typertext.GenericResponse.GetHttpStatus","Typertext.GenericResponse.GetStatus","Typertext.Http","Typertext.Http.HttpException","Typertext.Http.HttpException.constructor","Typertext.Http.HttpMethod","Typertext.Http.HttpProtocol","Typertext.Http.HttpRequest","Typertext.Http.HttpRequest.constructor","Typertext.Http.HttpRequest.Get","Typertext.Http.HttpRequest.Post","Typertext.Http.HttpRequest.RawRequest","Typertext.Http.HttpResponse","Typertext.Http.HttpResponse.constructor","Typertext.Http.HttpResponseStatus","Typertext.Http.HttpUrl","Typertext.Http.HttpUrl.constructor","Typertext.Http.HttpUrl.DefaultPort","Typertext.Http.HttpUrl.FromUrl","Typertext.Http.HttpUrl.DecodeQueryString","Typertext.Http.HttpUrl.EncodeQueryString","Typertext.Http.HttpUrl.UrlEncodeObject","Typertext.Http.HttpUrl.UrlDecodeString","Typertext.Http.HttpUrl.splitString","Typertext.Http.HttpUrl.ToString","Typertext.Json","Typertext.Json.JsonException","Typertext.Json.JsonException.constructor","Typertext.Json.JsonRequest","Typertext.Json.JsonRequest.constructor","Typertext.Json.JsonRequest.Get","Typertext.Json.JsonRequest.Post","Typertext.Json.JsonRequest.RawRequest","Typertext.Json.JsonResponse","Typertext.Json.JsonResponse.constructor","Typertext.Json.JsonResponse.fromHttpResponse"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"typertext.js","sourceRoot":"","sources":["../lib/Typertext/BaseException.ts","../lib/Typertext/GenericRequest.ts","../lib/Typertext/GenericResponse.ts","../lib/Typertext/GenericResponseHandler.ts","../lib/Typertext/Http/HttpException.ts","../lib/Typertext/Http/HttpMethod.ts","../lib/Typertext/Http/HttpPostData.ts","../lib/Typertext/Http/HttpProtocol.ts","../lib/Typertext/Http/HttpQueryString.ts","../lib/Typertext/Http/HttpRequest.ts","../lib/Typertext/Http/HttpResponse.ts","../lib/Typertext/Http/HttpResponseHandler.ts","../lib/Typertext/Http/HttpResponseStatus.ts","../lib/Typertext/Http/HttpUrl.ts","../lib/Typertext/Json/JsonException.ts","../lib/Typertext/Json/JsonObject.ts","../lib/Typertext/Json/JsonRequest.ts","../lib/Typertext/Json/JsonResponse.ts","../lib/Typertext/Json/JsonResponseHandler.ts"],"names":["Typertext","Typertext.BaseException","Typertext.BaseException.constructor","Typertext.BaseException.GetCode","Typertext.BaseException.GetMessage","Typertext.BaseException.GetCustom","Typertext.GenericResponse","Typertext.GenericResponse.constructor","Typertext.GenericResponse.GetContent","Typertext.GenericResponse.GetContentType","Typertext.GenericResponse.GetHeader","Typertext.GenericResponse.GetHttpStatus","Typertext.GenericResponse.GetStatus","Typertext.Http","Typertext.Http.HttpException","Typertext.Http.HttpException.constructor","Typertext.Http.HttpMethod","Typertext.Http.HttpProtocol","Typertext.Http.HttpRequest","Typertext.Http.HttpRequest.constructor","Typertext.Http.HttpRequest.Get","Typertext.Http.HttpRequest.Post","Typertext.Http.HttpRequest.RawRequest","Typertext.Http.HttpResponse","Typertext.Http.HttpResponse.constructor","Typertext.Http.HttpResponseStatus","Typertext.Http.HttpUrl","Typertext.Http.HttpUrl.constructor","Typertext.Http.HttpUrl.DefaultPort","Typertext.Http.HttpUrl.FromUrl","Typertext.Http.HttpUrl.DecodeQueryString","Typertext.Http.HttpUrl.EncodeQueryString","Typertext.Http.HttpUrl.UrlEncodeObject","Typertext.Http.HttpUrl.UrlDecodeString","Typertext.Http.HttpUrl.splitString","Typertext.Http.HttpUrl.ToString","Typertext.Json","Typertext.Json.JsonException","Typertext.Json.JsonException.constructor","Typertext.Json.JsonRequest","Typertext.Json.JsonRequest.constructor","Typertext.Json.JsonRequest.Get","Typertext.Json.JsonRequest.Post","Typertext.Json.JsonRequest.RawRequest","Typertext.Json.JsonResponse","Typertext.Json.JsonResponse.constructor","Typertext.Json.JsonResponse.fromHttpResponse"],"mappings":"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"} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index e9ad339..63a775b 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,10 +1,46 @@ module.exports = function (config) { + var sauceConf = { + linux: {opera: {low: 12, high: 12}, googlechrome: {low: 26, high: 32}, firefox: {low: 3, high: 27}}, + "OS X 10.9": {googlechrome: {low: 31, high: 31}, firefox: {low: 4, high: 26}}, + "OS X 10.8": {googlechrome: {low: 27, high: 32}, safari: {low: 6, high: 6}}, + "OS X 10.6": {googlechrome: {low: 27, high: 32}, safari: {low: 5, high: 5}, firefox: {low: 3, high: 27}}, + "Windows XP": {googlechrome: {low: 26, high: 32}, safari: {low: 3, high: 5}, opera: {low: 9, high: 12}, firefox: {low: 4, high: 27}}, + "Windows 7": {googlechrome: {low: 26, high: 32}, safari: {low: 5, high: 5}, opera: {low: 9, high: 12}, firefox: {low: 4, high: 27}}, + "Windows 8": {googlechrome: {low: 26, high: 32}, opera: {low: 9, high: 10}, firefox: {low: 4, high: 27}}, + "Windows 8.1": {googlechrome: {low: 26, high: 32}, opera: {low: 9, high: 10}, firefox: {low: 4, high: 27}} + }; + + var sauceBrowsers = {}; + for (var operatingSystem in sauceConf) { + for (var browser in sauceConf[operatingSystem]) { + for (var i = sauceConf[operatingSystem][browser].low; i < sauceConf[operatingSystem][browser].high; i++) { + sauceBrowsers[(operatingSystem + "_" + browser + "_" + i).toLowerCase().replace(" ", "-")] = { + base: "SauceLabs", + browserName: browser, + platform: operatingSystem, + version: "" + i + } + } + } + } config.set({ + sauceLabs: { + startConnect: true, + testName: 'TypertextTests', + recordScreenshots: false + }, basePath: __dirname, frameworks: ['jasmine'], files: [ 'test/**/*.test.js', 'build/typertext.js' - ] + ], + plugins: [ + 'karma-jasmine', + "karma-phantomjs-launcher", + 'karma-sauce-launcher', + 'karma-chrome-launcher' + ], + customLaunchers: sauceBrowsers }); }; \ No newline at end of file diff --git a/lib/Typertext/Http/HttpException.ts b/lib/Typertext/Http/HttpException.ts index 00aad8d..710d569 100644 --- a/lib/Typertext/Http/HttpException.ts +++ b/lib/Typertext/Http/HttpException.ts @@ -6,6 +6,6 @@ module Typertext.Http { /** * @class HttpException */ - export class HttpException extends Typertext.BaseException { + export class HttpException extends Typertext.BaseException { } } \ No newline at end of file diff --git a/lib/Typertext/Http/HttpRequest.ts b/lib/Typertext/Http/HttpRequest.ts index 9bc6d3d..2a7b6a8 100644 --- a/lib/Typertext/Http/HttpRequest.ts +++ b/lib/Typertext/Http/HttpRequest.ts @@ -17,7 +17,7 @@ module Typertext.Http { * @version 0.3.0 * @constructor */ - constructor() { + constructor() { } /** @@ -52,42 +52,57 @@ module Typertext.Http { */ public RawRequest(method:HttpMethod, request:HttpUrl, postData:HttpPostData = {}, callback:HttpResponseHandler = (c)=> { }):void { + var noop = (i:string)=>{ + return ""; + }; + + //Create a XHR var xhr = new XMLHttpRequest(); + + //And let us know when it does something xhr.onreadystatechange = ()=> { - //Once the request completes + //If the request is complete if (xhr.readyState == 4) { + //Prepare a getter for the header var getHeader = (name:string):string => { return xhr.getResponseHeader(name); }; + + //Check the status if (xhr.status == 200) { + //And either succeed callback(new HttpResponse(HttpResponseStatus.success, getHeader, xhr.status, xhr.responseText)); - } else if (xhr.status >= 400 && xhr.status < 500) { - //TODO generate a client error callback - throw new HttpException("Error type is unimplemented", -1, HttpResponseStatus.clientError); - + //Or fail miserably + throw new HttpException("The server returned an error response state", xhr.status, new HttpResponse(HttpResponseStatus.clientError, getHeader, xhr.status, xhr.responseText)); } else if (xhr.status >= 500 && xhr.status < 600) { - //TODO generate a server error callback - throw new HttpException("Error type is unimplemented", -1, HttpResponseStatus.serverError); - - } else { - throw new HttpException("An unknown error has occurred", -2, HttpResponseStatus.unknownError); + //Again + throw new HttpException("The server returned an error response state", xhr.status, new HttpResponse(HttpResponseStatus.serverError, getHeader, xhr.status, xhr.responseText)); } + //And again + throw new HttpException("An unknown error has occurred", -2, new HttpResponse(HttpResponseStatus.unknownError, getHeader, xhr.status, xhr.responseText)); } }; + //Or if it times out xhr.ontimeout = () => { - callback(new HttpResponse(HttpResponseStatus.timeout)); + //And make a big deal of the failing + throw new HttpException("The server took too long to respond to our request", -1, new HttpResponse(HttpResponseStatus.timeout, noop, -1, "")); }; + //Now connect xhr.open(HttpMethod[method], request.ToString(), true); + //And either send if (method == HttpMethod.GET) { + //A get request xhr.send(); return; } + //Or set the content-type xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + //And send the post-data to the server xhr.send(HttpUrl.UrlEncodeObject(postData)); } } diff --git a/package.json b/package.json index a54c887..8dc7a27 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "karma-phantomjs-launcher": "~0.1.2", "karma": "~0.10.9", "grunt-karma": "~0.6.2", - "phantomjs": "~1.9.7-1" + "phantomjs": "~1.9.7-1", + "karma-sauce-launcher": "~0.1.8" }, "license": "MIT", "scripts": {