From e489e188f4224625fb1c6bab89ab1b6a09799add Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A0=9A=E7=84=B6?= <yanran.wwj@alipay.com>
Date: Mon, 15 Aug 2016 17:48:47 +0800
Subject: [PATCH] Add test cases for the proxy, and do some tiny fixes.

the fixes are:
1. add "content-type" in headers for when dealing with localresponse
2. make a more accurate tip for throttle rate when lower than 1
3. make the crtMgr funcionality a more independent one
4. uppercase the request header before sending it out

update the tip
---
 .babelrc                                      |   6 +
 .eslintrc.js                                  | 245 ++++++++++
 .gitignore                                    |   3 +-
 jasmine.json                                  |  12 +
 lib/certMgr.js                                | 217 +++------
 lib/requestHandler.js                         |  37 +-
 lib/rule_default.js                           |   6 +-
 lib/util.js                                   |  62 ++-
 package.json                                  |  23 +-
 proxy.js                                      |  27 +-
 test/data/headers.js                          |  28 ++
 test/data/test.css                            |   3 +
 test/data/test.eot                            | Bin 0 -> 5320 bytes
 test/data/test.js                             |   3 +
 test/data/test.json                           |   3 +
 test/data/test.png                            | Bin 0 -> 105758 bytes
 test/data/test.svg                            |  14 +
 test/data/test.ttf                            | Bin 0 -> 5152 bytes
 test/data/test.webp                           | Bin 0 -> 45982 bytes
 test/data/test.woff                           | Bin 0 -> 2960 bytes
 test/data/test.woff2                          | Bin 0 -> 2400 bytes
 test/no_rule_spec.js                          | 459 ++++++++++++++++++
 test/no_rule_websocket_spec.js                | 144 ++++++
 test/rule_shouldUseLocalResponse_spec.js      |  57 +++
 test/server/server.js                         | 274 +++++++++++
 test/server/startServer.js                    |   3 +
 test/test.sh                                  |   7 +-
 test/test_rules/shouldUseLocalResponseRule.js |  22 +
 test/util/CommonUtil.js                       | 153 ++++++
 test/util/HttpUtil.js                         | 262 ++++++++++
 test/util/ProxyServerUtil.js                  |  65 +++
 31 files changed, 1948 insertions(+), 187 deletions(-)
 create mode 100644 .babelrc
 create mode 100644 .eslintrc.js
 create mode 100644 jasmine.json
 create mode 100644 test/data/headers.js
 create mode 100644 test/data/test.css
 create mode 100755 test/data/test.eot
 create mode 100644 test/data/test.js
 create mode 100644 test/data/test.json
 create mode 100755 test/data/test.png
 create mode 100755 test/data/test.svg
 create mode 100755 test/data/test.ttf
 create mode 100644 test/data/test.webp
 create mode 100755 test/data/test.woff
 create mode 100755 test/data/test.woff2
 create mode 100644 test/no_rule_spec.js
 create mode 100644 test/no_rule_websocket_spec.js
 create mode 100644 test/rule_shouldUseLocalResponse_spec.js
 create mode 100644 test/server/server.js
 create mode 100644 test/server/startServer.js
 create mode 100644 test/test_rules/shouldUseLocalResponseRule.js
 create mode 100644 test/util/CommonUtil.js
 create mode 100644 test/util/HttpUtil.js
 create mode 100644 test/util/ProxyServerUtil.js

diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..3aa0747
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,6 @@
+{
+  "presets": [
+    "es2015",
+    "stage-0"
+  ]
+}
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..5d96e44
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,245 @@
+module.exports = {
+  // http://eslint.org/docs/rules/
+
+  "ecmaFeatures": {
+    "arrowFunctions": false,                   // enable arrow functions
+    "binaryLiterals": false,                   // enable binary literals
+    "blockBindings": false,                    // enable let and const (aka block bindings)
+    "classes": false,                          // enable classes
+    "defaultParams": false,                    // enable default function parameters
+    "destructuring": false,                    // enable destructuring
+    "forOf": false,                            // enable for-of loops
+    "generators": false,                       // enable generators
+    "modules": false,                          // enable modules and global strict mode
+    "objectLiteralComputedProperties": false,  // enable computed object literal property names
+    "objectLiteralDuplicateProperties": false, // enable duplicate object literal properties in strict mode
+    "objectLiteralShorthandMethods": false,    // enable object literal shorthand methods
+    "objectLiteralShorthandProperties": false, // enable object literal shorthand properties
+    "octalLiterals": false,                    // enable octal literals
+    "regexUFlag": false,                       // enable the regular expression u flag
+    "regexYFlag": false,                       // enable the regular expression y flag
+    "restParams": false,                       // enable the rest parameters
+    "spread": false,                           // enable the spread operator
+    "superInFunctions": false,                 // enable super references inside of functions
+    "templateStrings": false,                  // enable template strings
+    "unicodeCodePointEscapes": false,          // enable code point escapes
+    "globalReturn": false,                     // allow return statements in the global scope
+    "jsx": false                               // enable JSX
+  },
+  "parser": "babel-eslint",
+
+  "env": {
+    "browser": true,     // browser global variables.
+    "node": false,        // Node.js global variables and Node.js-specific rules.
+    "worker": false,      // web workers global variables.
+    "amd": true,         // defines require() and define() as global variables as per the amd spec.
+    "mocha": false,       // adds all of the Mocha testing global variables.
+    "jasmine": true,     // adds all of the Jasmine testing global variables for version 1.3 and 2.0.
+    "phantomjs": false,   // phantomjs global variables.
+    "jquery": false,      // jquery global variables.
+    "prototypejs": false, // prototypejs global variables.
+    "shelljs": false,     // shelljs global variables.
+    "meteor": false,      // meteor global variables.
+    "mongo": false,       // mongo global variables.
+    "applescript": false, // applescript global variables.
+    "es6": true,         // enable all ECMAScript 6 features except for modules.
+  },
+
+  "globals": {
+    "goog": true,
+    "module": true,
+    "exports": true,
+    "__dirname": true,
+    "process": true
+  },
+
+  "plugins": [
+    // e.g. "react" (must run `npm install eslint-plugin-react` first)
+  ],
+
+  "rules": {
+
+    // Possible Errors
+    "comma-dangle": 0,             // disallow trailing commas in object literals
+    "no-cond-assign": 0,           // disallow assignment in conditional expressions
+    "no-console": 0,               // disallow use of console (off by default in the node environment)
+    "no-constant-condition": 0,    // disallow use of constant expressions in conditions
+    "no-control-regex": 0,         // disallow control characters in regular expressions
+    "no-debugger": 0,              // disallow use of debugger
+    "no-dupe-args": 0,             // disallow duplicate arguments in functions
+    "no-dupe-keys": 0,             // disallow duplicate keys when creating object literals
+    "no-duplicate-case": 0,        // disallow a duplicate case label
+    "no-empty-character-class": 0, // disallow the use of empty character classes in regular expressions
+    "no-empty": 0,                 // disallow empty statements
+    "no-ex-assign": 0,             // disallow assigning to the exception in a catch block
+    "no-extra-boolean-cast": 0,    // disallow double-negation boolean casts in a boolean context
+    "no-extra-parens": 0,          // disallow unnecessary parentheses (off by default)
+    "no-extra-semi": 1,            // disallow unnecessary semicolons
+    "no-func-assign": 0,           // disallow overwriting functions written as function declarations
+    "no-inner-declarations": 2,    // disallow function or variable declarations in nested blocks
+    "no-invalid-regexp": 0,        // disallow invalid regular expression strings in the RegExp constructor
+    "no-irregular-whitespace": 0,  // disallow irregular whitespace outside of strings and comments
+    "no-negated-in-lhs": 0,        // disallow negation of the left operand of an in expression
+    "no-obj-calls": 0,             // disallow the use of object properties of the global object (Math and JSON) as functions
+    "no-regex-spaces": 0,          // disallow multiple spaces in a regular expression literal
+    "no-reserved-keys": 0,         // disallow reserved words being used as object literal keys (off by default)
+    "no-sparse-arrays": 0,         // disallow sparse arrays
+    "no-unreachable": 0,           // disallow unreachable statements after a return, throw, continue, or break statement
+    "use-isnan": 0,                // disallow comparisons with the value NaN
+    "valid-jsdoc": 0,              // Ensure JSDoc comments are valid (off by default)
+    "valid-typeof": 0,             // Ensure that the results of typeof are compared against a valid string
+    "no-unexpected-multiline": 0,  // Avoid code that looks like two expressions but is actually one (off by default)
+
+
+    // Best Practices
+    "accessor-pairs": 0,        // enforces getter/setter pairs in objects (off by default)
+    "block-scoped-var": 0,      // treat var statements as if they were block scoped (off by default)
+    "complexity": 0,            // specify the maximum cyclomatic complexity allowed in a program (off by default)
+    "consistent-return": 0,     // require return statements to either always or never specify values
+    "curly": 2,                 // specify curly brace conventions for all control statements
+    "default-case": 0,          // require default case in switch statements (off by default)
+    "dot-notation": 0,          // encourages use of dot notation whenever possible
+    "dot-location": 0,          // enforces consistent newlines before or after dots (off by default)
+    "eqeqeq": 0,                // require the use of === and !==
+    "guard-for-in": 0,          // make sure for-in loops have an if statement (off by default)
+    "no-alert": 0,              // disallow the use of alert, confirm, and prompt
+    "no-caller": 0,             // disallow use of arguments.caller or arguments.callee
+    "no-div-regex": 0,          // disallow division operators explicitly at beginning of regular expression (off by default)
+    "no-else-return": 0,        // disallow else after a return in an if (off by default)
+    "no-empty-label": 0,        // disallow use of labels for anything other then loops and switches
+    "no-eq-null": 0,            // disallow comparisons to null without a type-checking operator (off by default)
+    "no-eval": 2,               // disallow use of eval()
+    "no-extend-native": 2,      // disallow adding to native types
+    "no-extra-bind": 0,         // disallow unnecessary function binding
+    "no-fallthrough": 0,        // disallow fallthrough of case statements
+    "no-floating-decimal": 0,   // disallow the use of leading or trailing decimal points in numeric literals (off by default)
+    "no-implied-eval": 0,       // disallow use of eval()-like methods
+    "no-iterator": 0,           // disallow usage of __iterator__ property
+    "no-labels": 0,             // disallow use of labeled statements
+    "no-lone-blocks": 0,        // disallow unnecessary nested blocks
+    "no-loop-func": 0,          // disallow creation of functions within loops
+    "no-multi-spaces": 0,       // disallow use of multiple spaces
+    "no-multi-str": 0,          // disallow use of multiline strings
+    "no-native-reassign": 0,    // disallow reassignments of native objects
+    "no-new-func": 0,           // disallow use of new operator for Function object
+    "no-new-wrappers": 2,       // disallows creating new instances of String, Number, and Boolean
+    "no-new": 0,                // disallow use of new operator when not part of the assignment or comparison
+    "no-octal-escape": 0,       // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251";
+    "no-octal": 0,              // disallow use of octal literals
+    "no-param-reassign": 0,     // disallow reassignment of function parameters (off by default)
+    "no-process-env": 0,        // disallow use of process.env (off by default)
+    "no-proto": 0,              // disallow usage of __proto__ property
+    "no-redeclare": 0,          // disallow declaring the same variable more then once
+    "no-return-assign": 0,      // disallow use of assignment in return statement
+    "no-script-url": 0,         // disallow use of javascript: urls
+    "no-self-compare": 0,       // disallow comparisons where both sides are exactly the same (off by default)
+    "no-sequences": 0,          // disallow use of comma operator
+    "no-throw-literal": 0,      // restrict what can be thrown as an exception (off by default)
+    "no-unused-expressions": 0, // disallow usage of expressions in statement position
+    "no-void": 0,               // disallow use of void operator (off by default)
+    "no-warning-comments": 0,   // disallow usage of configurable warning terms in comments, e.g. TODO or FIXME (off by default)
+    "no-with": 2,               // disallow use of the with statement
+    "radix": 0,                 // require use of the second argument for parseInt() (off by default)
+    "vars-on-top": 0,           // requires to declare all vars on top of their containing scope (off by default)
+    "wrap-iife": 0,             // require immediate function invocation to be wrapped in parentheses (off by default)
+    "yoda": 0,                  // require or disallow Yoda conditions
+
+
+    // Strict Mode
+    "strict": 0,          // controls location of Use Strict Directives
+
+
+    // Variables
+    "no-catch-shadow": 0,            // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment)
+    "no-delete-var": 0,              // disallow deletion of variables
+    "no-label-var": 0,               // disallow labels that share a name with a variable
+    "no-shadow": 0,                  // disallow declaration of variables already declared in the outer scope
+    "no-shadow-restricted-names": 0, // disallow shadowing of names such as arguments
+    "no-undef": 2,                   // disallow use of undeclared variables unless mentioned in a /*global */ block
+    "no-undef-init": 0,              // disallow use of undefined when initializing variables
+    "no-undefined": 0,               // disallow use of undefined variable (off by default)
+    "no-unused-vars": 0,             // disallow declaration of variables that are not used in the code
+    "no-use-before-define": 0,       // disallow use of variables before they are defined
+
+
+    // Node.js
+    "handle-callback-err": 0,   // enforces error handling in callbacks (off by default) (on by default in the node environment)
+    "no-mixed-requires": 0,     // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment)
+    "no-new-require": 0,        // disallow use of new operator with the require function (off by default) (on by default in the node environment)
+    "no-path-concat": 0,        // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment)
+    "no-process-exit": 0,       // disallow process.exit() (on by default in the node environment)
+    "no-restricted-modules": 0, // restrict usage of specified node modules (off by default)
+    "no-sync": 0,               // disallow use of synchronous methods (off by default)
+
+
+    // Stylistic Issues
+    "array-bracket-spacing": [2, "never"], // enforce spacing inside array brackets (off by default)
+    "brace-style": 0,                      // enforce one true brace style (off by default)
+    "camelcase": 0,                        // require camel case names
+    "comma-spacing": 0,                    // enforce spacing before and after comma
+    "comma-style": 0,                      // enforce one true comma style (off by default)
+    "computed-property-spacing": 0,        // require or disallow padding inside computed properties (off by default)
+    "consistent-this": 0,                  // enforces consistent naming when capturing the current execution context (off by default)
+    "eol-last": 0,                         // enforce newline at the end of file, with no multiple empty lines
+    "func-names": 0,                       // require function expressions to have a name (off by default)
+    "func-style": 0,                       // enforces use of function declarations or expressions (off by default)
+    "indent": [2, 4],                      // this option sets a specific tab width for your code (off by default)
+    "key-spacing": 0,                      // enforces spacing between keys and values in object literal properties
+    "lines-around-comment": 0,             // enforces empty lines around comments (off by default)
+    "linebreak-style": 0,                  // disallow mixed 'LF' and 'CRLF' as linebreaks (off by default)
+    "max-nested-callbacks": 0,             // specify the maximum depth callbacks can be nested (off by default)
+    "new-cap": 0,                          // require a capital letter for constructors
+    "new-parens": 0,                       // disallow the omission of parentheses when invoking a constructor with no arguments
+    "new-parens": 0,                       // disallow the omission of parentheses when invoking a constructor with no arguments
+    "newline-after-var": 0,                // allow/disallow an empty newline after var statement (off by default)
+    "no-array-constructor": 2,             // disallow use of the Array constructor
+    "no-continue": 0,                      // disallow use of the continue statement (off by default)
+    "no-inline-comments": 0,               // disallow comments inline after code (off by default)
+    "no-lonely-if": 0,                     // disallow if as the only statement in an else block (off by default)
+    "no-mixed-spaces-and-tabs": 2,         // disallow mixed spaces and tabs for indentation
+    "no-multiple-empty-lines": 0,          // disallow multiple empty lines (off by default)
+    "no-nested-ternary": 0,                // disallow nested ternary expressions (off by default)
+    "no-new-object": 2,                    // disallow use of the Object constructor
+    "no-spaced-func": 0,                   // disallow space between function identifier and application
+    "no-ternary": 0,                       // disallow the use of ternary operators (off by default)
+    "no-trailing-spaces": 0,               // disallow trailing whitespace at the end of lines
+    "no-underscore-dangle": 0,             // disallow dangling underscores in identifiers
+    "object-curly-spacing": [2, "always"],  // require or disallow padding inside curly braces (off by default)
+    "one-var": 0,                          // allow just one var statement per function (off by default)
+    "operator-assignment": 0,              // require assignment operator shorthand where possible or prohibit it entirely (off by default)
+    "operator-linebreak": 0,               // enforce operators to be placed before or after line breaks (off by default)
+    "padded-blocks": 0,                    // enforce padding within blocks (off by default)
+    "quote-props": 0,                      // require quotes around object literal property names (off by default)
+    "quotes": 0,                           // specify whether double or single quotes should be used
+    "semi-spacing": 0,                     // enforce spacing before and after semicolons
+    "semi": [2, "always"],                             // require or disallow use of semicolons instead of ASI
+    "sort-vars": 0,                        // sort variables within the same declaration block (off by default)
+    "space-after-keywords": 0,             // require a space after certain keywords (off by default)
+    "space-before-blocks": 0,              // require or disallow space before blocks (off by default)
+    "space-before-function-paren": 0,      // require or disallow space before function opening parenthesis (off by default)
+    "space-in-parens": 0,                  // require or disallow spaces inside parentheses (off by default)
+    "space-infix-ops": 0,                  // require spaces around operators
+    "space-return-throw-case": 0,          // require a space after return, throw, and case
+    "space-unary-ops": 0,                  // require or disallow spaces before/after unary operators (words on by default, nonwords off by default)
+    "spaced-comment": 0,                   // require or disallow a space immediately following the                                                  // or /* in a comment (off by default)
+    "wrap-regex": 0,                       // require regex literals to be wrapped in parentheses (off by default)
+
+
+    // ECMAScript 6
+    "constructor-super": 0,      // verify super() callings in constructors (off by default)
+    "generator-star-spacing": 0, // enforce the spacing around the * in generator functions (off by default)
+    "no-this-before-super": 0,   // disallow to use this/super before super() calling in constructors (off by default)
+    "no-var": 0,                 // require let or const instead of var (off by default)
+    "object-shorthand": 0,       // require method and property shorthand syntax for object literals (off by default)
+    "prefer-const": 0,           // suggest using of const declaration for variables that are never modified after declared (off by default)
+
+
+    // Legacy
+    "max-depth": 0,        // specify the maximum depth that blocks can be nested (off by default)
+    "max-len": [1, 120, 2], // specify the maximum length of a line in your program (off by default)
+    "max-params": 0,       // limits the number of parameters that can be used in the function declaration. (off by default)
+    "max-statements": 0,   // specify the maximum number of statement allowed in a function (off by default)
+    "no-bitwise": 0,       // disallow use of bitwise operators (off by default)
+    "no-plusplus": 0       // disallow use of unary operators, ++ and -- (off by default)
+  }
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 1e7469e..2fa5ecd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,4 +24,5 @@ coverage
 .grunt
 build/Release
 node_modules
-.lock-wscript
\ No newline at end of file
+.lock-wscript
+temp
\ No newline at end of file
diff --git a/jasmine.json b/jasmine.json
new file mode 100644
index 0000000..3216038
--- /dev/null
+++ b/jasmine.json
@@ -0,0 +1,12 @@
+{
+  "spec_dir": "test",
+  "spec_files": [
+    "**/*[sS]pec.js"
+  ],
+  "helpers": [
+     "../node_modules/babel-register/lib/node.js",
+     "../node_modules/babel-polyfill/dist/polyfill.js"
+  ],
+  "stopSpecOnExpectationFailure": false,
+  "random": false
+}
diff --git a/lib/certMgr.js b/lib/certMgr.js
index 50b12f1..711c2ed 100644
--- a/lib/certMgr.js
+++ b/lib/certMgr.js
@@ -1,174 +1,81 @@
-var exec = require('child_process').exec,
-    spawn         = require('child_process').spawn,
-    path          = require("path"),
-    fs            = require("fs"),
-    os            = require("os"),
-    color         = require('colorful'),
-    readline      = require('readline'),
-    util          = require('./util'),
-    logUtil       = require("./log"),
-    certGenerator = require("./certGenerator"),
-    asyncTask     = require("async-task-mgr");
+var logUtil = require('./log');
+var util = require('./util');
+var color = require('colorful');
+var EasyCert = require('node-easy-cert');
+var exec = require('child_process').exec;
+var path = require('path');
+var readline = require('readline');
 
-var isWin             = /^win/.test(process.platform),
-    certDir           = path.join(util.getUserHome(),"/.anyproxy_certs/"),
-    rootCAcrtFilePath = path.join(certDir,"rootCA.crt"),
-    rootCAkeyFilePath = path.join(certDir,"rootCA.key"),
-    createCertTaskMgr = new asyncTask();
+var isWin = /^win/.test(process.platform);
+var options = {
+    rootDirPath: util.getUserHome() + '/.anyproxy_certs',
+    defaultCertAttrs: [
+        { name: 'countryName', value: 'CN' },
+        { name: 'organizationName', value: 'AnyProxy' },
+        { shortName: 'ST', value: 'SH' },
+        { shortName: 'OU', value: 'AnyProxy SSL Proxy' }
+    ]
+};
 
-if(!fs.existsSync(certDir)){
-    try{
-        fs.mkdirSync(certDir,0777);
-    }catch(e){
-        logUtil.printLog("===========", logUtil.T_ERR);
-        logUtil.printLog("failed to create cert dir ,please create one by yourself - " + certDir, logUtil.T_ERR);
-        logUtil.printLog("this error will not block main thread unless you use https-related features in anyproxy", logUtil.T_ERR);
-        logUtil.printLog("===========", logUtil.T_ERR);
-    }
-}
+var easyCert = new EasyCert(options);
+var crtMgr = util.merge({}, easyCert);
 
-var cache_rootCACrtFileContent, cache_rootCAKeyFileContent;
-function getCertificate(hostname,certCallback){
-    checkRootCA();
-    var keyFile = path.join(certDir , "__hostname.key".replace(/__hostname/,hostname) ),
-        crtFile = path.join(certDir , "__hostname.crt".replace(/__hostname/,hostname) );
-
-    if(!cache_rootCACrtFileContent || !cache_rootCAKeyFileContent){
-      cache_rootCACrtFileContent = fs.readFileSync(rootCAcrtFilePath, {encoding: 'utf8'});
-      cache_rootCAKeyFileContent = fs.readFileSync(rootCAkeyFilePath, {encoding: 'utf8'});
-    }
-
-    createCertTaskMgr.addTask(hostname,function(callback){
-        if(!fs.existsSync(keyFile) || !fs.existsSync(crtFile)){
-            try{
-              var result = certGenerator.generateCertsForHostname(hostname, {
-                cert: cache_rootCACrtFileContent,
-                key: cache_rootCAKeyFileContent
-              });
-              fs.writeFileSync(keyFile, result.privateKey);
-              fs.writeFileSync(crtFile, result.certificate);
-              callback(null, result.privateKey, result.certificate);
-
-            }catch(e){
-              callback(e);
-            }
-        }else{
-            callback(null , fs.readFileSync(keyFile) , fs.readFileSync(crtFile));
+// catch specified error, such as ROOT_CA_NOT_EXISTS
+crtMgr.getCertificate = function (host, cb) {
+    easyCert.getCertificate(host, (error, keyContent, crtContent) => {
+        if (error === 'ROOT_CA_NOT_EXISTS') {
+            util.showRootInstallTip();
+            process.exit(0);
+            return;
         }
 
-    },function(err,keyContent,crtContent){
-        if(!err){
-            certCallback(null ,keyContent,crtContent);
-        }else{
-            certCallback(err);
-        }
+        cb(error, keyContent, crtContent);
     });
-}
+};
 
-function createCert(hostname,callback){
-    checkRootCA();
+// set default common name of the cert
+crtMgr.generateRootCA = function (cb) {
+    doGenerate(false);
 
-    var cmd = cmd_genCert + " __host __path".replace(/__host/,hostname).replace(/__path/,certDir);
-    exec(cmd,{ cwd : certDir },function(err,stdout,stderr){
-        if(err){
-            callback && callback(new Error("error when generating certificate"),null);
-        }else{
-            var tipText = "certificate created for __HOST".replace(/__HOST/,hostname);
-            logUtil.printLog(color.yellow(color.bold("[internal https]")) + color.yellow(tipText)) ;
-            callback(null);
-        }
-    });
-}
+    function doGenerate(overwrite) {
+        const rootOptions = {
+            commonName: 'AnyProxy',
+            overwrite: !!overwrite
+        };
 
-function clearCerts(cb){
-    if(isWin){
-        exec("del * /q",{cwd : certDir},cb);
-    }else{
-        exec("rm *.key *.csr *.crt *.srl",{cwd : certDir},cb);
-    }
-}
-
-function isRootCAFileExists(){
-   return (fs.existsSync(rootCAcrtFilePath) && fs.existsSync(rootCAkeyFilePath));
-}
-
-var rootCAExists = false;
-function checkRootCA(){
-    if(rootCAExists) return;
-    if(!isRootCAFileExists()){
-        logUtil.printLog(color.red("can not find rootCA.crt or rootCA.key"), logUtil.T_ERR);
-        logUtil.printLog(color.red("you may generate one by the following methods"), logUtil.T_ERR);
-        logUtil.printLog(color.red("\twhen using globally : anyproxy --root"), logUtil.T_ERR);
-        logUtil.printLog(color.red("\twhen using as a module : require(\"anyproxy\").generateRootCA();"), logUtil.T_ERR);
-        logUtil.printLog(color.red("\tmore info : https://github.com/alibaba/anyproxy/wiki/How-to-config-https-proxy"), logUtil.T_ERR);
-        process.exit(0);
-    } else{
-      rootCAExists = true;
-    }
-}
-
-function generateRootCA(){
-
-    if(isRootCAFileExists()){
-        logUtil.printLog(color.yellow("rootCA exists at " + certDir));
-        var rl = readline.createInterface({
-            input : process.stdin,
-            output: process.stdout
-        });
-
-        rl.question("do you really want to generate a new one ?)(yes/NO)", function(answer) {
-            if(/yes/i.test(answer)){
-                startGenerating();
-            }else{
-                logUtil.printLog("will not generate a new one");
-                process.exit(0);
+        easyCert.generateRootCA(rootOptions, (error, keyPath, crtPath) => {
+            if (!error) {
+                const certDir = path.dirname(keyPath);
+                logUtil.printLog(color.cyan('The cert is generated at "' + certDir + '"'));
+                if(isWin){
+                    exec("start .",{ cwd : certDir });
+                }else{
+                    exec("open .",{ cwd : certDir });
+                }
             }
 
-            rl.close();
-        });
-    }else{
-        startGenerating();
-    }
+            if (error === 'ROOT_CA_EXISTED') {
+                var rl = readline.createInterface({
+                    input : process.stdin,
+                    output: process.stdout
+                });
 
-    function startGenerating(){
-        //clear old certs
-        clearCerts(function(){
-            logUtil.printLog(color.green("temp certs cleared"));
-            try{
-              var result = certGenerator.generateRootCA();
-              fs.writeFileSync(rootCAkeyFilePath, result.privateKey);
-              fs.writeFileSync(rootCAcrtFilePath, result.certificate);
+                rl.question("do you really want to generate a new one ?)(yes/NO)", function(answer) {
+                    if(/yes/i.test(answer)){
+                        doGenerate(true);
+                    }else{
+                        console.log("will not generate a new one");
 
-              logUtil.printLog(color.green("rootCA generated"));
-              logUtil.printLog(color.green(color.bold("please trust the rootCA.crt in " + certDir)));
-              logUtil.printLog(color.green(color.bold("or you may get it via anyproxy webinterface")));
+                    }
+                    rl.close();
+                });
 
-              if(isWin){
-                  exec("start .",{cwd : certDir});
-              }else{
-                  exec("open .",{cwd : certDir});
-              }
-
-            }catch(e){
-              logUtil.printLog(color.red(e));
-              logUtil.printLog(color.red(e.stack));
-              logUtil.printLog(color.red("fail to generate root CA"),logUtil.T_ERR);
+                return;
             }
+            cb(error, keyPath, crtPath);
         });
     }
-}
 
-function getRootCAFilePath(){
-    if(isRootCAFileExists()){
-        return rootCAcrtFilePath;
-    }else{
-        return "";
-    }
-}
+};
 
-module.exports.getRootCAFilePath  = getRootCAFilePath;
-module.exports.generateRootCA     = generateRootCA;
-module.exports.getCertificate     = getCertificate;
-module.exports.createCert         = createCert;
-module.exports.clearCerts         = clearCerts;
-module.exports.isRootCAFileExists = isRootCAFileExists;
\ No newline at end of file
+module.exports = crtMgr;
\ No newline at end of file
diff --git a/lib/requestHandler.js b/lib/requestHandler.js
index 074ea82..2f79d83 100644
--- a/lib/requestHandler.js
+++ b/lib/requestHandler.js
@@ -14,8 +14,7 @@ var http           = require("http"),
     logUtil        = require("./log"),
     httpsServerMgr = require("./httpsServerMgr");
 
-var defaultRule = require("./rule_default.js"),
-    userRule    = defaultRule; //init
+var userRule = util.freshRequire('./rule_default');
 
 function userRequestHandler(req,userRes){
     /*
@@ -103,7 +102,7 @@ function userRequestHandler(req,userRes){
             resourceInfo.resBody    = resBody;
             resourceInfo.length     = resBody ? resBody.length : 0;
             resourceInfo.statusCode = statusCode;
-            
+
             GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo);
 
             userRes.writeHead(statusCode,resHeader);
@@ -140,6 +139,8 @@ function userRequestHandler(req,userRes){
         options.headers = util.lower_keys(options.headers);
         options.headers["content-length"] = reqData.length; //rewrite content length info
 
+        options.headers = util.upper_keys(options.headers);
+
         //send request
         var proxyReq = ( /https/.test(protocol) ? https : http).request(options, function(res) {
 
@@ -202,7 +203,7 @@ function userRequestHandler(req,userRes){
 
                     //delay
                     },function(callback){
-                        var pauseTimeInMS = userRule.pauseBeforeSendingResponse(req,res);
+                    var pauseTimeInMS = userRule.pauseBeforeSendingResponse(req,res);
                         if(pauseTimeInMS){
                             setTimeout(callback,pauseTimeInMS);
                         }else{
@@ -232,7 +233,7 @@ function userRequestHandler(req,userRes){
                         resourceInfo.resHeader  = resHeader;
                         resourceInfo.resBody    = serverResData;
                         resourceInfo.length     = serverResData ? serverResData.length : 0;
-                        
+
                         GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo);
 
                         callback();
@@ -260,7 +261,7 @@ function userRequestHandler(req,userRes){
             userRes.end();
         });
 
-        proxyReq.end(reqData); 
+        proxyReq.end(reqData);
     }
 }
 
@@ -272,14 +273,14 @@ function connectReqHandler(req, socket, head){
 
     var shouldIntercept = userRule.shouldInterceptHttpsReq(req);
 
-    //bypass webSocket on webinterface 
+    //bypass webSocket on webinterface
     if(targetPort == 8003){
         shouldIntercept = false; // TODO : a more general solution?
     }
 
     logUtil.printLog(color.green("\nreceived https CONNECT request " + host));
     if(shouldIntercept){
-        logUtil.printLog("==>will forward to local https server");    
+        logUtil.printLog("==>will forward to local https server");
     }else{
         logUtil.printLog("==>will bypass the man-in-the-middle proxy");
     }
@@ -325,7 +326,7 @@ function connectReqHandler(req, socket, head){
 
         //determine the target server
         function(callback){
-            
+
             if(shouldIntercept){
                 proxyPort = internalHttpsPort;
                 proxyHost = "127.0.0.1";
@@ -356,11 +357,11 @@ function connectReqHandler(req, socket, head){
 
                         callback();
                     });
-                }); 
+                });
 
                 conn.on("error",function(e){
                     logUtil.printLog("err when connect to + " + host + " , " + e, logUtil.T_ERR);
-                });  
+                });
             }catch(e){
                 logUtil.printLog("err when connect to remote https server (__host)".replace(/__host/,host), logUtil.T_ERR);
             }
@@ -372,7 +373,7 @@ function connectReqHandler(req, socket, head){
             resourceInfo.resHeader  = {};
             resourceInfo.resBody    = "";
             resourceInfo.length     = 0;
-            
+
             GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo);
 
             callback();
@@ -385,9 +386,13 @@ function connectReqHandler(req, socket, head){
     });
 }
 
+/**
+* @return return the merged rule for reference
+*/
 function setRules(newRule){
+
     if(!newRule){
-        return;
+        return userRule;
     }else{
 
         if(!newRule.summary){
@@ -396,8 +401,8 @@ function setRules(newRule){
             };
         }
 
-        userRule = util.merge(defaultRule,newRule);
-        
+        userRule = util.merge(userRule,newRule);
+
         var functions = [];
         if('function' == typeof(userRule.init)){
             functions.push(function(cb){
@@ -416,6 +421,7 @@ function setRules(newRule){
             }
         });
 
+        return userRule;
     }
 }
 
@@ -427,3 +433,4 @@ module.exports.userRequestHandler = userRequestHandler;
 module.exports.connectReqHandler  = connectReqHandler;
 module.exports.setRules           = setRules;
 module.exports.getRuleSummary     = getRuleSummary;
+module.exports.token = Date.now();
diff --git a/lib/rule_default.js b/lib/rule_default.js
index ccccad9..30f5a94 100644
--- a/lib/rule_default.js
+++ b/lib/rule_default.js
@@ -73,6 +73,7 @@ setTimeout(function(){
 
 
 module.exports = {
+    token: Date.now(),
     summary:function(){
         var tip = "the default rule for AnyProxy.";
         if(!isRootCAFileExists){
@@ -102,7 +103,10 @@ module.exports = {
                 if(err){
                     callback(200, {}, "[AnyProxy failed to load local file] " + err);
                 }else{
-                    callback(200, {}, buffer);
+                    var header = {
+                        'Content-Type': utils.contentType(req.anyproxy_map_local)
+                    };
+                    callback(200, header, buffer);
                 }
             });
         }
diff --git a/lib/util.js b/lib/util.js
index e1d678a..f3c2314 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -1,8 +1,11 @@
 var fs   = require("fs"),
     path = require("path"),
+    mime = require('mime-types'),
+    color = require('colorful'),
+    logUtil = require("./log"),
     exec = require('child_process').exec;
 
-
+const changeCase = require('change-case');
 // {"Content-Encoding":"gzip"} --> {"content-encoding":"gzip"}
 module.exports.lower_keys = function(obj){
     for(var key in obj){
@@ -34,7 +37,7 @@ module.exports.getAnyProxyHome = function(){
 
     if(!fs.existsSync(home)){
         try{
-            fs.mkdirSync(home,0777);
+            fs.mkdirSync(home, '0777');
         }catch(e){
             return null;
         }
@@ -48,7 +51,7 @@ module.exports.generateCacheDir = function(){
     var rand      = Math.floor(Math.random() * 1000000),
         cachePath = path.join(util.getAnyProxyHome(),"./" + CACHE_DIR_PREFIX + rand);
 
-    fs.mkdirSync(cachePath,0777);
+    fs.mkdirSync(cachePath, '0777');
     return cachePath;
 }
 
@@ -60,7 +63,7 @@ module.exports.clearCacheDir = function(cb){
     if(isWin){
         exec("for /D %f in (" + dirNameWildCard + ") do rmdir %f /s /q",{cwd : home},cb);
     }else{
-        exec("rm -rf " + dirNameWildCard + "",{cwd : home},cb);        
+        exec("rm -rf " + dirNameWildCard + "",{cwd : home},cb);
     }
 }
 
@@ -102,4 +105,53 @@ module.exports.filewalker = function(root,cb){
 
         cb && cb.apply(null,[null,ret]);
     });
-}
+};
+
+/*
+* 获取文件所对应的content-type以及content-length等信息
+* 比如在useLocalResponse的时候会使用到
+*/
+module.exports.contentType = function (filepath) {
+    return mime.contentType(path.extname(filepath));
+};
+
+/*
+* 读取file的大小,以byte为单位
+*/
+module.exports.contentLength = function (filepath) {
+    try {
+        var stat = fs.statSync(filepath);
+        return stat.size;
+    } catch (e) {
+        logUtil.printLog(color.red("\nfailed to ready local file : " + filepath));
+        logUtil.printLog(color.red(e));
+        return 0;
+    }
+};
+
+module.exports.showRootInstallTip = function () {
+    logUtil.printLog(color.red("can not find rootCA.crt or rootCA.key"), logUtil.T_ERR);
+    logUtil.printLog(color.red("you may generate one by the following methods"), logUtil.T_ERR);
+    logUtil.printLog(color.red("\twhen using globally : anyproxy --root"), logUtil.T_ERR);
+    logUtil.printLog(color.red("\twhen using as a module : require(\"anyproxy\").generateRootCA();"), logUtil.T_ERR);
+    logUtil.printLog(color.red("\tmore info : https://github.com/alibaba/anyproxy/wiki/How-to-config-https-proxy"), logUtil.T_ERR);
+};
+
+/*
+* remove the cache before requering, the path SHOULD BE RELATIVE TO UTIL.JS
+*/
+module.exports.freshRequire = function (path) {
+    delete require.cache[require.resolve(path)];
+    return require(path);
+};
+
+module.exports.upper_keys = function (obj) {
+    var upperObject = {};
+    for(var key in obj) {
+        var upperKey = changeCase.headerCase(key);
+        upperObject[upperKey] = obj[key];
+    }
+
+    return upperObject;
+};
+
diff --git a/package.json b/package.json
index 37d6361..d58f736 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
     "async": "~0.9.0",
     "async-task-mgr": ">=1.1.0",
     "body-parser": "^1.13.1",
+    "change-case": "^3.0.0",
     "colorful": "^2.1.0",
     "commander": "~2.3.0",
     "compression": "^1.4.4",
@@ -17,19 +18,35 @@
     "iconv-lite": "^0.4.6",
     "ip": "^0.3.2",
     "juicer": "^0.6.6-stable",
+    "mime-types": "2.1.11",
     "nedb": "^0.11.0",
+    "node-easy-cert": "^1.0.0",
     "node-forge": "^0.6.39",
     "npm": "^2.7.0",
     "promise": "^7.0.4",
     "qrcode-npm": "0.0.3",
     "stream-throttle": "^0.1.3",
-    "ws": "^0.4.32"
+    "ws": "^1.1.0"
   },
   "devDependencies": {
-    "proxy-eval": ">=1.1.2"
+    "babel-polyfill": "^6.13.0",
+    "babel-preset-es2015": "^6.13.2",
+    "babel-preset-stage-0": "^6.5.0",
+    "babel-register": "^6.11.6",
+    "https-proxy-agent": "^1.0.0",
+    "jasmine": "^2.4.1",
+    "koa": "^1.2.1",
+    "koa-body": "^1.4.0",
+    "koa-router": "^5.4.0",
+    "koa-send": "^3.2.0",
+    "koa-websocket": "^2.0.0",
+    "nodeunit": "^0.9.1",
+    "request": "^2.74.0",
+    "stream-equal": "0.1.8"
   },
   "scripts": {
-    "test": "sh test.sh"
+    "test": "sh test/test.sh",
+    "testserver": "node test/server/startServer.js"
   },
   "optionalDependencies": {},
   "repository": {
diff --git a/proxy.js b/proxy.js
index 93d995f..85b9411 100644
--- a/proxy.js
+++ b/proxy.js
@@ -11,7 +11,6 @@ var http = require('http'),
     color           = require('colorful'),
     certMgr         = require("./lib/certMgr"),
     getPort         = require("./lib/getPort"),
-    requestHandler  = require("./lib/requestHandler"),
     Recorder        = require("./lib/recorder"),
     logUtil         = require("./lib/log"),
     wsServer        = require("./lib/wsServer"),
@@ -37,7 +36,8 @@ var T_TYPE_HTTP            = 0,
     DEFAULT_HOST           = "localhost",
     DEFAULT_TYPE           = T_TYPE_HTTP;
 
-var default_rule = require('./lib/rule_default');
+var default_rule = util.freshRequire('./rule_default');
+var requestHandler = util.freshRequire('./requestHandler');
 
 //option
 //option.type     : 'http'(default) or 'https'
@@ -70,22 +70,39 @@ function proxyServer(option){
         logUtil.setPrintStatus(false);
     }
 
+    // copy the rule to keep the original proxyRules independent
+    proxyRules = Object.assign({}, proxyRules);
+
+    var currentRule = requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule
+
     if(!!option.interceptHttps){
-        default_rule.setInterceptFlag(true);
+        if (!certMgr.isRootCAFileExists()) {
+            util.showRootInstallTip();
+            process.exit(0);
+            return;
+        }
+
+        currentRule.setInterceptFlag(true);
 
         //print a tip when using https features in Node < v0.12
         var nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]);
         if(nodeVersion < 0.12){
             logUtil.printLog(color.red("node >= v0.12 is required when trying to intercept HTTPS requests :("), logUtil.T_ERR);
         }
+
+        logUtil.printLog(color.blue("The WebSocket will not work properly in the https intercept mode :("), logUtil.T_TIP);
     }
 
     if(option.throttle){
         logUtil.printLog("throttle :" + option.throttle + "kb/s");
-        GLOBAL._throttle = new ThrottleGroup({rate: 1024 * parseInt(option.throttle) }); // rate - byte/sec
+        const rate = parseInt(option.throttle);
+        if (rate < 1) {
+            logUtil.printLog(color.red('Invalid throttle rate value, should be positive integer\n'), logUtil.T_ERR);
+            process.exit(0);
+        }
+        GLOBAL._throttle = new ThrottleGroup({rate: 1024 * parseFloat(option.throttle) }); // rate - byte/sec
     }
 
-    requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule
     self.httpProxyServer = null;
 
     async.series(
diff --git a/test/data/headers.js b/test/data/headers.js
new file mode 100644
index 0000000..2e47a4e
--- /dev/null
+++ b/test/data/headers.js
@@ -0,0 +1,28 @@
+/*
+* 用于放置所有header信息的测试数据
+*
+*/
+
+// Get 和 Post共有的header信息
+/*eslint max-len: ["off"]*/
+const CommonRequestHeader = {
+    Accept: 'application/json;charset=utf-8,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
+    'Accept-Charset': 'utf-8',
+    'Accept-Encoding': 'gzip, deflate',
+    'Accept-Language': 'zh-CN',
+    'Accept-Datetime': 'Thu, 31 May 2007 20:35:00 GMT',
+    'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==',
+    'Cache-Control': 'no-cache',
+    'Connection': 'keep-alive',
+    'Cookie': 'testCookie1=cookie1; testCookie2=cookie2',
+    'Content-Type': 'application/x-www-form-urlencoded',
+    'Date': 'Tue, 15 Nov 1994 08:12:31 GMT',
+    'Origin': 'http://localhost',
+    'Pragma': 'no-cache',
+    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
+};
+
+module.exports = {
+    CommonRequestHeader
+};
+
diff --git a/test/data/test.css b/test/data/test.css
new file mode 100644
index 0000000..7345751
--- /dev/null
+++ b/test/data/test.css
@@ -0,0 +1,3 @@
+.test {
+    display: block;
+}
\ No newline at end of file
diff --git a/test/data/test.eot b/test/data/test.eot
new file mode 100755
index 0000000000000000000000000000000000000000..c4c74f965eb55d1c1b527f12af37d3047521be65
GIT binary patch
literal 5320
zcmd^CO>7&-6@IfzQWB~EA6gL|XXup_SzJ;-wq-?;6^0bWICdIZl3lLTHe6BEk1L6+
zL<e>cMGtLZ5NVqB(q4)b1q!5x0z)YQ+@OaXS|BYNAV3kI=%L7^fKarz7U-e1`n~0k
zELmxQT)XmezW3fYGjHC!d9(hYn@Hjnq!B+FxpfCX^QK^QEme^Ze;qZ%jOYH_huRuy
zrxnW678NN+8~Dq^&`R@=R_P98o3^3x(@ki$X@}MwwxltN&?qb?^@o}#ZKH3JPKD&c
zjhK9W;2t#p#=H3P!pQhc@X8Ayv9C9?n|9%T{BJ*p4FAM8vac1T=i>t`u(1(#xl&l&
zEPek?3-S<=udr(G6rgX1jD{LlH}0*x@$R1niFDXSbS-Budw**FoyfHY`@|X)4b%D!
z$UlMHzqVPt>pORF0QuLDn>X@Vn`Q|%*GG^WH|@Ix`i<`a<Uc}|TlQw|_dh;;2J*iU
z@ed36o#J_V`4ggs4`9Dk*v=LH@_gu5L|s3E{2k)8dl8%&(l+ek7PZdKU0b9+azW1z
z+aJYZV|~?j7Q+?+8(Rf5f;?5e&>x65$&LBHu3;v6z0!(LXiOkdhj{?oktem1Sf=Pc
z?F)VW;5OaT=jn$a@Jy8lV`7(xOuU#^+^pJC&@#(J>vi-l>UTIU*6$0B;6Cv$<ci1e
zM6k#I?@zN60A!={AS(L+{8l2z(F2B_<%8S$JGzgaq_fedI(3b7kwnP#yat;{lMpT9
z%20QIzsubl65S1=<NWv;;b{n-9lS7c>U@V7ym(<oTna*|ztj8ht-ZExt+(Z2bF1Iq
zy7%y{-fn-3-r3^s*8bWB>%)caGu^^}+AqW}gx%ZK(ynP9xQpF9Sl4gCj}VPVM>;z+
z;c6GUI4elkljIVvJo^ftGEit~(zF)s%G15QPxrXpPlQBAcdHiBXY@<sr#jqKL3>U>
zx-fBRVB-9^U$+LQrbeeHhqV6b$-b$vhYN@D>4~Ya?oRPhLz7=>AOGijr%ivW=ItAr
z9_sT7zc9b`uz09Ct$TX3K*t&P8@gnl_<j4nC-Z9C^gqd`J7NCAhyVB;EX1v|vVE+K
z3kJuWAM|m~1L^y)AD|bH^ys7WNX~0HIZjTEV3v+EQDJL18GR^<L~$S2Bz`*S&-Jk`
zLas3RG+(UuYM{$itV2Ir#V+7$RqQ4oEmpAy`d6#ii~U)xVjp$U5BQY2nlR68`dJkV
zY8P!)tWm3Ys)}{!!&U48zFfs_@{5<M*aLmGioJAG>{PLj2E}jV`NF;J_0_ea9EzWl
z<D+8}a_OGTL$$tTZ%F%2aV@{SBcpO9zg5g_Y~&-^{ALZ$=T`4**xNO+*51r*@2uyy
z<XB|1rb_0va@%$>x6GsOytX=CEUw6v?fj;ktBxxR+xgqMY%#J{EEc9lMru8IK8oXp
zD$qULR_h4W8g4d8L(rZ>JC3qEMiW3wU`Q}4taaRgHf}qK-#h5B=2&(hNAVuNAtRK9
zee*H>(OdI)ujBH`H|lX#68G+wbNAZL9lZ>HD!%W~Ygpenv_*KrUT!;HNt#3Z=#4HB
z54PRLI9aeGPE?A}PSFVdj?Y<JAF`@;UT_1P_~=4Im2i=Jb;I7-ac|z)S<f<2a7Dov
z!11S-oIjksb$%6@Qqhfc!jkgp18Ti~Re2U}rPYOi8nQAgvUDS@v;q5<jW`0?tg#db
z1{GO~;>PSQ=7?uvVI@o@Gb>@GnQ~dG_fyI>cx!h^c;ks|V*ZtM&<F-fX{l1FbWlaD
zfK-!=CM`>rD<pea4MA0vq#9-WC^O$rr6rsw*;08^=?pZIZC*wbj3zRHjAdB?B|?^E
zC`zSsmK9dIDHBq;25dOwj;GSfZN!wvh{1hJiA-3zOap$&<+6JzCfQP%oPS|YWR*S~
zgg!1yvV^hAqwWDL>v}qq3fS{j+OS}aE~H@!@S>_Shn3q@4e`(}w#^BR2ci)(5Mm={
zD{W~-i7duf?%}X%FeN+bi)SCWXbBX!8O>Ns$;>)VHk!K)K8hz|!@+v6o6MuZ_f|#`
zA-E97iZe1%GHl)mCsGvPXet?ilQl1uK493hl_`9m(p~kV7dqFM_GqVO&KV=N>+|Y~
zbTD89t>Iu;wU}j1OQ>agHmq7rEI>-t9DkA51z^N1)xy#|q!vhF)rMi(osdXGAPcuu
zYdj-M8L3(kw6JP7uP&y`uH{*)U$x|nyJ6K~UcH{ax=>LDg3xz4`cAV<ZSfoFa$6hr
z&yK0K5GN^8H&$-upBDTm;m1zs1F3YGGZ(>%m9V`$?QqaQw;B#q?A!&p&sGa7Ny7hR
z2Ag<ft3G7|%lH^I5aPI^nOz}-lMP)al}Sr1rd68}lL_TRQhG6QCMGkO{@wO=flvQf
ztduEtdO~VD6gZ18bz^N^p|I*P%Ys`!;>_(Sv#fL5YnENyK4F&K-1eDe54Qoc+`#Q=
zv)st-lV-Vz+cPGqmeA*L<S96E1_MYq!fg<aaC;VxaBIL3Zu{W~w*zp5+d(+O?bC3C
z+aWl@?Kx9UJ9$2AV*TwI8RuB=rrBuKIZmpOsfI&p7{|p#rY4b6C!QC>o;0{t{Z9t+
zC9J~rJrI6n4lB_!>O?v6XjG1xMof9p@pBX$k$C*Lq6(bo7VF9Xj#GkXXN<}6i0Hve
z#;|TUdSaIhveupqt8p`OYC5dWe-;%PmIeI+wu1ZvG9r_FG7-WnrBc#Jq7tN0vr+SK
zT+a*9(~bErqJ;R7{rKllR8u^ZD@6<`r%M=X;?OK3l`)hHV}d1Bh7WV}dU{Wjx(w`T
zgL<D8;{w-+Qi=I6qcMl0g<U*)PH?D2s8Y$bcxKs9dfZ+{jnU$E061geU>@&d!zEN*
zW6quo7?@!W>q6tqg7Hq61debebm4R(_HHB+>h>{DFrtml1CA5;#Wlhu>~Jn*$t8|~
z#O&_DY7C5Ngl5uFt45q&Dd&tNPsY3Tj1w|mKsBPYn2yM4Tzu?tRf)k4L+%-XbOomR
z)mqu8$CE2#RCfkGhSgNngLrLgGJN+QUt(=5pEV5`;i%1_>P}mcGXDR9gEw7QV>b`g
zm+NYWUF&*;Gh?cYp_=8$pwF3VB2+>Sak7+f93Pt)+Y(VB%pY~a#R*u8E+?0PQxU--
zsrdLjiUkUEJyUDz{p?gso|G7$C;K>VTvw)z$w2Ut{SI1HA7dPhT2SM>{vb!5U97I7
zzT{afxu<eCah2m7c16?}&SK(I^mC}SqPt6tgOfDX1vD>k)DnoRoWq?}i_;a8(^0*E
zu)b*S5<L%a6+ke!X6_0{^Adog`2urdFulwi1}Ww+xXv5~^URq6SYQr=MdmQL!5juR
znG*&0B6Ap|nZv+h4uf0Fi37aC90p%v4udZ<hrw5v^Blmd%wdpW4g;Gx43<oFsUGGm
z3+h>@mmM?>lymY4>dO#TOf^|&ud?8<*Br#`bq6u^wyB<}Q@_fBL)~x?Q#T#N)Gbp@
z)v0+F9BRQqO#PaJn7VE5HMz9fmr*RF8gokTPu=CKCQSIq{$L&-AmR-a<;rJup-k==
zR!_qW_Pm;Cte{qMkSF$@_CCx_&^E;0qi6-|G+XW$_pjrt@qW6jFVB_-S$ePWoA?iD
f^nMnfPN3l9*xGB>MDy?iaqw;B`YtYtS)%^}H({*f

literal 0
HcmV?d00001

diff --git a/test/data/test.js b/test/data/test.js
new file mode 100644
index 0000000..9883731
--- /dev/null
+++ b/test/data/test.js
@@ -0,0 +1,3 @@
+function test () {
+    console.info('This is nothing but a js file, to test the js download');
+}
\ No newline at end of file
diff --git a/test/data/test.json b/test/data/test.json
new file mode 100644
index 0000000..107be9b
--- /dev/null
+++ b/test/data/test.json
@@ -0,0 +1,3 @@
+{
+  'testkey': 'this is just a normal json file'
+}
\ No newline at end of file
diff --git a/test/data/test.png b/test/data/test.png
new file mode 100755
index 0000000000000000000000000000000000000000..55a2aa302a5bbc31c885566fa4225dcbb5cd1221
GIT binary patch
literal 105758
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

literal 0
HcmV?d00001

diff --git a/test/data/test.svg b/test/data/test.svg
new file mode 100755
index 0000000..b3c6de3
--- /dev/null
+++ b/test/data/test.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
+<defs>
+<font id="fontello" horiz-adv-x="1000" >
+<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
+<missing-glyph horiz-adv-x="1000" />
+<glyph glyph-name="glass" unicode="&#xe800;" d="M948 746q0-19-24-43l-353-353v-429h179q15 0 25-10t11-25-11-25-25-11h-500q-14 0-25 11t-11 25 11 25 25 10h179v429l-353 353q-24 24-24 43 0 13 10 21t21 9 24 3h786q13 0 24-3t21-9 10-21z" horiz-adv-x="1000" />
+
+<glyph glyph-name="music" unicode="&#xe801;" d="M857 725v-625q0-28-19-50t-48-33-58-18-53-6-54 6-58 18-48 33-19 50 19 50 48 33 58 18 54 6q58 0 107-22v300l-429-132v-396q0-28-19-50t-48-33-58-18-53-6-54 6-58 18-48 33-19 50 19 50 48 34 58 17 54 6q58 0 107-21v539q0 17 10 32t28 20l464 142q7 3 16 3 22 0 38-16t15-38z" horiz-adv-x="857.1" />
+</font>
+</defs>
+</svg>
\ No newline at end of file
diff --git a/test/data/test.ttf b/test/data/test.ttf
new file mode 100755
index 0000000000000000000000000000000000000000..c3616fe23945564cafbca9856b0fe8f2e84ab93f
GIT binary patch
literal 5152
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
a2^4%BTYIgVXdSsH4!)yYZ{S5SNAzD0tecPk

literal 0
HcmV?d00001

diff --git a/test/data/test.webp b/test/data/test.webp
new file mode 100644
index 0000000000000000000000000000000000000000..565200ab489d6037e98e9f5de5eab505dc7c5875
GIT binary patch
literal 45982
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

literal 0
HcmV?d00001

diff --git a/test/data/test.woff b/test/data/test.woff
new file mode 100755
index 0000000000000000000000000000000000000000..6324ce3cb91be4b06497774b7dfb5f8929a84724
GIT binary patch
literal 2960
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

literal 0
HcmV?d00001

diff --git a/test/data/test.woff2 b/test/data/test.woff2
new file mode 100755
index 0000000000000000000000000000000000000000..c40c369c6dd4d092be4a9908fbd5ea90c3537beb
GIT binary patch
literal 2400
zcmV-m37__NPew8T0RR910103K4*&oF02Ckq00{>G0RR9100000000000000000000
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
SO2V~oOY#)vQdW!v0000Cg?`rn

literal 0
HcmV?d00001

diff --git a/test/no_rule_spec.js b/test/no_rule_spec.js
new file mode 100644
index 0000000..f474cf1
--- /dev/null
+++ b/test/no_rule_spec.js
@@ -0,0 +1,459 @@
+const http = require('http');
+const querystring = require('querystring');
+const path = require('path');
+const fs = require('fs');
+const Buffer = require('buffer').Buffer;
+const Server = require('./server/server.js');
+const
+    {
+        proxyGet,
+        proxyPost,
+        directGet,
+        directPost,
+        directUpload,
+        proxyUpload,
+        generateUrl,
+        proxyPut,
+        directPut,
+        proxyDelete,
+        directDelete,
+        directHead,
+        proxyHead,
+        directOptions,
+        proxyOptions,
+        proxyPutUpload,
+        directPutUpload
+    } = require('./util/HttpUtil.js');
+const { CommonRequestHeader } = require('./data/headers.js');
+const { isCommonResHeaderEqual, isCommonReqEqual, printLog } = require('./util/CommonUtil.js');
+const color = require('colorful');
+const streamEqual = require('stream-equal');
+const WebSocket = require('ws');
+
+const ProxyServerUtil = require('./util/ProxyServerUtil.js');
+
+const wsHost = 'ws://localhost:3000/test/socket';
+
+testRequest('http');
+testRequest('https');
+
+// Test suites for http and https request
+function testRequest(protocol = 'http') {
+
+    function constructUrl(urlPath) {
+        return generateUrl(protocol, urlPath);
+    }
+
+    describe('Test request without proxy rules in protocol ' + protocol, () => {
+        let proxyServer ;
+        let serverInstance;
+
+        beforeAll((done) => {
+            jasmine.DEFAULT_TIMEOUT_INTERVAL = 200000;
+            printLog('Start server for no_rule_spec');
+
+            serverInstance = new Server();
+            proxyServer = ProxyServerUtil.defaultProxyServer();
+            setTimeout(function() {
+                done();
+            }, 2000);
+        });
+
+        afterAll(() => {
+            serverInstance && serverInstance.close();
+            proxyServer && proxyServer.close();
+            printLog('Closed server for no_rule_spec');
+        });
+
+
+        it('Get should work as direct without proxy rules', (done) => {
+            const url = constructUrl('/test');
+            const getParam = {
+                param: 'nothing'
+            };
+
+            proxyGet(url, getParam, CommonRequestHeader).then((proxyRes) => {
+                directGet(url, getParam, CommonRequestHeader).then(directRes => {
+
+                    expect(proxyRes.statusCode).toEqual(200);
+
+                    expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                    expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+                    expect(proxyRes.statusCode).toEqual(directRes.statusCode);
+                    expect(directRes.body).toEqual(proxyRes.body);
+
+                    done();
+                }, error => {
+                    console.error('error happend in direct get:', error);
+                    done.fail('error happend in direct get');
+                });
+
+            }, error => {
+                console.log('error happened in proxy get:', error);
+                done.fail('error happend in proxy get');
+            });
+        });
+
+        it('Post should work as direct without proxy rules', (done) => {
+            const url = constructUrl('/test/getuser');
+            const param = {
+                param: 'postnothing'
+            };
+
+            proxyPost(url, param, CommonRequestHeader).then(proxyRes => {
+                directPost(url, param, CommonRequestHeader).then(directRes => {
+
+                    expect(proxyRes.statusCode).toEqual(200);
+
+                    expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                    expect(proxyRes.statusCode).toEqual(directRes.statusCode);
+                    expect(directRes.body).toEqual(proxyRes.body);
+
+                    expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                    done();
+                }, error => {
+                    console.error('error in direct post:', error);
+                    done.fail('error happend in direct post');
+                });
+
+            }, error => {
+                console.log('error happened in proxy post,', error);
+                done.fail('error happend in proxy post');
+            });
+        });
+
+        it('PUT should work as direct without proxy rules', done => {
+            const url = constructUrl('/test/put');
+            const param = {
+                param: 'putsomething'
+            };
+            proxyPut(url, param, CommonRequestHeader).then(proxyRes => {
+                directPut(url, param, CommonRequestHeader).then(directRes => {
+                    expect(directRes.statusCode).toEqual(200);
+
+                    expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                    expect(directRes.statusCode).toEqual(proxyRes.statusCode);
+                    expect(directRes.body).toEqual(proxyRes.body);
+                    expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                    done();
+                }, error => {
+                    console.error('error happened in direct put', error);
+                    done.fail('error happened in direct put');
+                });
+            }, error => {
+                console.error('error happened in proxy put', error);
+                done.fail('error happened in proxy put');
+            });
+
+        });
+
+        it('DELETE rquest should work as direct without proxy rules', (done) => {
+            const url = constructUrl('/test/delete/123456');
+
+            proxyDelete(url, {}, CommonRequestHeader).then(proxyRes => {
+                directDelete(url, {}, CommonRequestHeader).then(directRes => {
+                    expect(directRes.statusCode).toEqual(200);
+
+                    expect(directRes.statusCode).toEqual(proxyRes.statusCode);
+                    expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                    expect(directRes.body).toEqual(proxyRes.body);
+                    expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                    done();
+                }, error => {
+                    console.error('error happened in direct delete :', error);
+                    done.fail('error happened in direct delete');
+                });
+            }, error => {
+                console.error('error happened in proxy delete :', error);
+                done.fail('error happened in proxy delete');
+            });
+        });
+
+        it('HEAD request should work as direct without proxy rules', (done) => {
+            const url = constructUrl('/test/head');
+
+            proxyHead(url, CommonRequestHeader)
+                .then(proxyRes => {
+                    directHead(url, CommonRequestHeader)
+                        .then(directRes => {
+                            expect(directRes.statusCode).toEqual(200);
+                            expect(directRes.body).toEqual('');
+
+                            expect(directRes.statusCode).toEqual(proxyRes.statusCode);
+                            expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                            expect(directRes.body).toEqual(proxyRes.body);
+                            expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                            done();
+                        }, error => {
+                            console.error('error happened in direct head request:', error);
+                            done.fail('error happened in direct head request');
+                        });
+                }, error => {
+                    console.error('error happened in proxy head request:', error);
+                    done.fail('error happened in proxy head request');
+                });
+
+        });
+
+        it('OPTIONS request should work as direct without proxy rules', (done) => {
+            const url = constructUrl('/test/options');
+
+            proxyOptions(url, CommonRequestHeader)
+                .then(proxyRes => {
+                    directOptions(url, CommonRequestHeader)
+                        .then(directRes => {
+                            expect(directRes.statusCode).toEqual(200);
+                            expect(directRes.body).toEqual('could_be_empty');
+
+                            expect(directRes.statusCode).toEqual(proxyRes.statusCode);
+                            expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                            expect(directRes.body).toEqual(proxyRes.body);
+                            expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                            done();
+                        }, error => {
+                            console.error('error happened in direct options request:', error);
+                            done.fail('error happened in direct options request');
+                        });
+                }, error => {
+                    console.error('error happened in proxy options request:', error);
+                    done.fail('error happened in proxy options request');
+                });
+
+        });
+
+        describe('Response code should be honored as direct without proxy rules', () => {
+            [301, 302, 303].forEach(code => {
+                testRedirect(code);
+            });
+
+            function testRedirect (redirectCode) {
+                it(`${redirectCode} response should work as direct without proxy rules`, (done) => {
+                    const url = constructUrl(`/test/response/${redirectCode}`);
+
+                    proxyGet(url)
+                        .then(proxyRes => {
+                            directGet(url)
+                                .then(directRes => {
+                                    const redirects = directRes.request._redirect.redirects || [];
+                                    const proxyRedirects = proxyRes.request._redirect.redirects || [];
+                                    expect(redirects.length).toEqual(1);
+                                    expect(proxyRedirects.length).toEqual(1);
+
+                                    expect(redirects[0].statusCode).toEqual(redirectCode);
+                                    expect(redirects[0].redirectUri).toEqual(proxyRedirects[0].redirectUri);
+                                    expect(redirects[0].statusCode).toEqual(proxyRedirects[0].statusCode);
+                                    if (protocol === 'https') {
+                                        expect(redirects[0].redirectUri).toEqual('https://localhost:3001/test');
+                                    } else {
+                                        expect(redirects[0].redirectUri).toEqual('http://localhost:3000/test');
+                                    }
+                                    done();
+                                }, error => {
+                                    console.log(`error happened in direct ${redirectCode}:`, error);
+                                    done.fail(`error happened in direct ${redirectCode}`);
+                                });
+
+                        }, error => {
+                            console.log(`error happened in proxy ${redirectCode}:`, error);
+                            done.fail(`error happened in proxy ${redirectCode}`);
+                        });
+
+                });
+            }
+        });
+
+
+
+        describe('Test file download ', () => {
+            const testArray = [
+                {
+                    url: constructUrl('/test/download/png'),
+                    type: 'png',
+                    contentType: 'image/png'
+                },
+                {
+                    url: constructUrl('/test/download/webp'),
+                    type: 'WEBP',
+                    contentType: 'image/webp'
+                },
+                {
+                    url: constructUrl('/test/download/json'),
+                    type: 'JSON',
+                    contentType: 'application/json; charset=utf-8'
+                },
+                {
+                    url: constructUrl('/test/download/css'),
+                    type: 'CSS',
+                    contentType: 'text/css; charset=utf-8'
+                },
+                {
+                    url: constructUrl('/test/download/ttf'),
+                    type: 'TTF',
+                    contentType: 'application/x-font-ttf'
+                },
+                {
+                    url: constructUrl('/test/download/eot'),
+                    type: 'EOT',
+                    contentType: 'application/vnd.ms-fontobject'
+                },
+                {
+                    url: constructUrl('/test/download/svg'),
+                    type: 'SVG',
+                    contentType: 'image/svg+xml'
+                },
+                {
+                    url: constructUrl('/test/download/woff'),
+                    type: 'WOFF',
+                    contentType: 'application/font-woff'
+                },
+                {
+                    url: constructUrl('/test/download/woff2'),
+                    type: 'WOFF2',
+                    contentType: 'application/font-woff2'
+                }
+            ];
+
+            testArray.forEach(item => {
+                testFileDownload(item.url, item.type, item.contentType);
+            });
+
+            // 封装测试文件下载的测试工具类
+            function testFileDownload (url, filetype, contentType) {
+                const describe = `${filetype} file download without rules should be work as direct download`;
+                const param = {};
+
+                it(describe, (done) => {
+
+                    proxyGet(url, param).then(proxyRes => {
+                        directGet(url, param).then(directRes => {
+                            expect(proxyRes.statusCode).toEqual(200);
+
+                            expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                            expect(proxyRes.statusCode).toEqual(directRes.statusCode);
+                            expect(proxyRes.body).toEqual(directRes.body);
+                            expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+
+                            done();
+                        }, error => {
+                            console.error('error in direct get :', filetype, error);
+                            done.fail(`error happend in direct get ${filetype}`);
+                        });
+                    }, error => {
+                        console.error('error in proxy get :', filetype, error);
+                        done.fail(`error happend in proxy get ${filetype}`);
+                    });
+                });
+            }
+
+        });
+
+        describe('Test file upload', () => {
+            const formParams = {
+                param1: 'param_1',
+                param2: 'param2'
+            };
+            it('POST upload should be working', (done) => {
+                const url = constructUrl('/test/upload/png');
+                const filePath = path.resolve('./test/data/test.png');
+
+                proxyUpload(url, filePath, formParams)
+                    .then(proxyRes => {
+                        directUpload(url, filePath, formParams)
+                            .then((directRes) => {
+                                expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+                                expect(isCommonReqEqual(url, serverInstance)).toBe(true);
+                                assertReponse(proxyRes, directRes, filePath, done);
+                            }, error => {
+                                console.error('error in direct upload:', error);
+                                done.fail('error in direct upload');
+                            });
+                    }, error => {
+                        console.error('error in proxy upload:', error);
+                        done.fail('error in proxy upload:');
+                    });
+
+            });
+
+            it('PUT upload should be working', (done) => {
+                const url = constructUrl('/test/upload/putpng');
+                const filePath = path.resolve('./test/data/test.png');
+                proxyPutUpload(url, filePath, formParams)
+                    .then(proxyRes => {
+                        directPutUpload(url, filePath, formParams)
+                            .then((directRes) => {
+                                expect(isCommonResHeaderEqual(directRes.headers, proxyRes.headers, url)).toBe(true);
+
+                                assertReponse(proxyRes, directRes, filePath, done);
+                            }, error => {
+                                console.error('error in direct upload:', error);
+                                done.fail('error in direct upload');
+                            });
+                    }, error => {
+                        console.error('error in proxy upload:', error);
+                        done.fail('error in proxy upload:');
+                    });
+            });
+
+            function assertReponse (proxyRes, directRes, originFilePath, done) {
+                expect(proxyRes.statusCode).toEqual(200);
+
+                expect(proxyRes.statusCode).toEqual(directRes.statusCode);
+                // expect(proxyRes.headers.reqbody).toEqual(directRes.headers.reqbody);
+
+                // the body will be the file path
+                const directUploadedStream = fs.createReadStream(directRes.body);
+                const proxyUploadedStream = fs.createReadStream(proxyRes.body);
+                const localFileStream = fs.createReadStream(originFilePath);
+                streamEqual(directUploadedStream, localFileStream)
+                    .then(isLocalEqual => {
+                        expect(isLocalEqual).toBe(true);
+                        streamEqual(directUploadedStream, proxyUploadedStream)
+                            .then(isUploadedEqual => {
+                                expect(isUploadedEqual).toBe(true);
+                                done();
+                            }, error => {
+                                console.error('error in comparing directUpload with proxy:\n',error);
+                                done.fail('error in comparing directUpload with proxy');
+                            });
+                        done();
+                    }, error => {
+                        console.error('error in comparing directUpload with local:\n',error);
+                        done.fail('error in comparing directUpload with local');
+                    });
+            }
+        });
+
+        // describe('Test Big file download', () => {
+        //     // const url = '/test/download/bigfile';
+        //     const url = 'http://yunpan.alibaba-inc.com/downloadService.do?token=pZWiXMXUguIUQDvR098qnUVqVAWhNVY6';
+        //     const contentType = 'application/octet-stream';
+        //     const param = {};
+        //     it('BIG file downlaod should be working', (done) => {
+        //         directGet(url, param, CommonRequestHeader).then(proxyRes => {
+        //             console.info('proxyRes body:', proxyRes.body);
+
+        //             directGet(url, param, CommonRequestHeader).then(directRes => {
+        //                 expect(proxyRes.statusCode).toEqual(200);
+        //                 expect(proxyRes.headers['content-type']).toEqual(contentType);
+
+        //                 expect(proxyRes.statusCode).toEqual(directRes.statusCode);
+        //                 expect(proxyRes.headers['content-type']).toEqual(directRes.headers['content-type']);
+        //                 expect(proxyRes.body).toEqual(directRes.body);
+        //                 done();
+        //             }, error => {
+        //                 console.error('error in direct get bigfile :', error);
+        //                 done.fail(`error happend in direct get bigfile`);
+        //             });
+        //         }, error => {
+        //             console.error('error in proxy get bigfile :', error);
+        //             done.fail(`error happend in proxy get bigfile`);
+        //         });
+        //     });
+        // });
+    });
+}
diff --git a/test/no_rule_websocket_spec.js b/test/no_rule_websocket_spec.js
new file mode 100644
index 0000000..bdfade2
--- /dev/null
+++ b/test/no_rule_websocket_spec.js
@@ -0,0 +1,144 @@
+/*
+* Test suites for WebSocket.
+* ONLY TO ENSURE THE REQUEST WILL BE BYPASSED SUCCESSFULLY, WE HAVEN'T SUPPORTTED WEBSOCKET YET.
+*
+*/
+const ProxyServerUtil = require('./util/ProxyServerUtil.js');
+const { generateWsUrl, directWs, proxyWs } = require('./util/HttpUtil.js');
+const Server = require('./server/server.js');
+const { printLog } = require('./util/CommonUtil.js');
+
+const wsHost = 'ws://localhost:3000/test/socket';
+
+testWebsocket('ws');
+testWebsocket('wss');
+
+function testWebsocket(protocol) {
+    describe('Test WebSocket in protocol : ' + protocol , () =>{
+        const url = generateWsUrl(protocol, '/test/socket');
+        let serverInstance ;
+        let proxyServer ;
+
+        beforeAll((done) => {
+            jasmine.DEFAULT_TIMEOUT_INTERVAL = 200000;
+            printLog('Start server for no_rule_websocket_spec');
+            serverInstance = new Server();
+
+            proxyServer = ProxyServerUtil.proxyServerWithoutHttpsIntercept();
+
+            setTimeout(function() {
+                done();
+            }, 2000);
+        });
+
+        afterAll(() => {
+            serverInstance && serverInstance.close();
+            proxyServer && proxyServer.close();
+            printLog('Closed server for no_rule_websocket_spec');
+        });
+
+        it('Default websocket option', done => {
+            const sendMessage = 'Send the message with default option';
+            let directMessage ; // set the flag for direct message, compare when both direct and proxy got message
+            let proxyMessage;
+
+            const ws  = directWs(url);
+            const porxyWsRef = proxyWs(url);
+            ws.on('open', () => {
+                ws.send(sendMessage);
+            });
+
+            porxyWsRef.on('open', () => {
+                porxyWsRef.send(sendMessage);
+            });
+
+            ws.on('message', (data, flag) => {
+                const message = JSON.parse(data);
+                if (message.type === 'onMessage') {
+                    directMessage = message.content;
+                    compareMessageIfReady();
+                }
+            });
+
+            porxyWsRef.on('message', (data, flag) => {
+                const message = JSON.parse(data);
+                if (message.type === 'onMessage') {
+                    proxyMessage = message.content;
+                    compareMessageIfReady();
+                }
+            });
+
+            ws.on('error', error => {
+                console.error('error happened in direct websocket:', error);
+                done.fail('Error happened in direct websocket');
+            });
+
+            porxyWsRef.on('error', error => {
+                console.error('error happened in proxy websocket:', error);
+                done.fail('Error happened in proxy websocket');
+            });
+
+            function compareMessageIfReady () {
+                if (directMessage && proxyMessage) {
+                    expect(directMessage).toEqual(proxyMessage);
+                    expect(directMessage).toEqual(sendMessage);
+                    done();
+                }
+            }
+        });
+
+        it('masked:true', done => {
+            const sendMessage = 'Send the message with option masked:true';
+            let directMessage ; // set the flag for direct message, compare when both direct and proxy got message
+            let proxyMessage;
+
+            const ws  = directWs(url);
+            const porxyWsRef = proxyWs(url);
+            ws.on('open', () => {
+                ws.send(sendMessage, { masked: true });
+            });
+
+            porxyWsRef.on('open', () => {
+                porxyWsRef.send(sendMessage, { masked: true });
+            });
+
+            ws.on('message', (data, flag) => {
+                const message = JSON.parse(data);
+                if (message.type === 'onMessage') {
+                    directMessage = message.content;
+                    compareMessageIfReady();
+                }
+            });
+
+            porxyWsRef.on('message', (data, flag) => {
+                const message = JSON.parse(data);
+                if (message.type === 'onMessage') {
+                    proxyMessage = message.content;
+                    compareMessageIfReady();
+                }
+            });
+
+            ws.on('error', error => {
+                console.error('error happened in direct websocket:', error);
+                done.fail('Error happened in direct websocket');
+            });
+
+            porxyWsRef.on('error', error => {
+                console.error('error happened in proxy websocket:', error);
+
+                done.fail('Error happened in proxy websocket');
+            });
+
+            function compareMessageIfReady () {
+                if (directMessage && proxyMessage) {
+                    expect(directMessage).toEqual(proxyMessage);
+                    expect(directMessage).toEqual(sendMessage);
+                    done();
+                }
+            }
+
+        });
+    });
+
+}
+
diff --git a/test/rule_shouldUseLocalResponse_spec.js b/test/rule_shouldUseLocalResponse_spec.js
new file mode 100644
index 0000000..e540f66
--- /dev/null
+++ b/test/rule_shouldUseLocalResponse_spec.js
@@ -0,0 +1,57 @@
+/*
+* test for rule shouldUseLocal
+*
+*/
+
+const ProxyServerUtil = require('./util/ProxyServerUtil.js');
+const { proxyGet, generateUrl } = require('./util/HttpUtil.js');
+const Server = require('./server/server.js');
+const { printLog } = require('./util/CommonUtil.js');
+
+const rule = require('./test_rules/shouldUseLocalResponseRule.js');
+const expectedLocalBody = 'handled_in_local_response';
+
+
+testWrapper('http');
+testWrapper('https');
+
+function testWrapper(protocol, ) {
+    describe('Rule shouldUseLocalResponse should be working in :' + protocol, () => {
+        let proxyServer ;
+        let serverInstance ;
+
+        beforeAll((done) => {
+            jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000000;
+            printLog('Start server for rule_shouldUseLocalResponse_spec');
+
+            serverInstance = new Server();
+
+            proxyServer = ProxyServerUtil.proxyServerWithRule(rule);
+
+            setTimeout(function() {
+                done();
+            }, 2000);
+        });
+
+        afterAll(() => {
+            serverInstance && serverInstance.close();
+            proxyServer && proxyServer.close();
+            printLog('Close server for rule_shouldUseLocalResponse_spec');
+
+        });
+
+        it('Should use local response if the assertion is true', done => {
+            const url = generateUrl(protocol, '/test/uselocal');
+            proxyGet(url, {})
+                .then(res => {
+                    expect(res.body).toEqual(expectedLocalBody);
+                    expect(res.headers['via-proxy-local']).toEqual('true');
+                    done();
+                }, error => {
+                    console.log('error happened in proxy get for shouldUseLocal: ',error);
+                    done.fail('error happened when test shouldUseLocal rule');
+                });
+
+        });
+    });
+}
diff --git a/test/server/server.js b/test/server/server.js
new file mode 100644
index 0000000..74bf6d7
--- /dev/null
+++ b/test/server/server.js
@@ -0,0 +1,274 @@
+const Koa = require('koa');
+const KoaRouter = require('koa-router');
+const koaBody = require('koa-body');
+const send = require('koa-send');
+const path = require('path');
+const https = require('https');
+const certMgr = require("../../lib/certMgr");
+const fs = require('fs');
+const websocket = require('koa-websocket');
+const wsRouter = require('koa-router')();
+const color = require('colorful');
+const WebSocketServer = require('ws').Server;
+
+const DEFAULT_PORT = 3000;
+const HTTPS_PORT = 3001;
+const UPLOAD_DIR = './test/temp';
+const PROXY_KEY_PREFIX = 'proxy-';
+
+function KoaServer() {
+    this.httpServer = null;
+    this.httpsServer = null;
+    this.requestRecordMap = {}; // store all request data to the map
+    const self = this;
+
+    /**
+     * log the request info, write as
+     */
+    this.logRequest = function* (next) {
+        const headers = this.request.headers;
+        let key = this.request.host + this.request.url;
+
+        // take proxy data with 'proxy-' + url
+        if (headers['via-proxy'] === 'true') {
+            key = PROXY_KEY_PREFIX + key;
+        }
+
+        let body = this.request.body;
+        body = typeof body === 'object' ? JSON.stringify(body) : body;
+        self.requestRecordMap[key] = {
+            headers: headers,
+            body: body
+        };
+        yield next;
+    };
+
+    this.start();
+}
+
+KoaServer.prototype.constructRouter = function() {
+    const router = KoaRouter();
+    router.post('/test/getuser', this.logRequest, koaBody(),  function*(next) {
+        printLog('requesting post /test/getuser');
+        this.response.set('reqbody', JSON.stringify(this.request.body));
+        this.response.body = 'something in post';
+    });
+
+    router.get('/test', this.logRequest, function*(next) {
+        printLog('request in get: ' + JSON.stringify(this.request));
+        this.response.body = 'something';
+        this.response.__req = this.request;
+        printLog('response in get:' + JSON.stringify(this.response));
+    });
+
+    router.get('/test/uselocal', this.logRequest, function*(next) {
+        printLog('request in get local:' + JSON.stringify(this.request));
+        this.response.body = 'something should be in local';
+        this.response.__req = this.request;
+        printLog('response in get:' + JSON.stringify(this.response));
+    });
+
+    ['png', 'webp', 'json', 'js', 'css', 'ttf', 'eot', 'svg', 'woff', 'woff2'].forEach(item => {
+        router.get(`/test/download/${item}`, this.logRequest, function* (next) {
+            printLog(`now downloading the ${item}`);
+            yield send(this, `test/data/test.${item}`);
+        });
+    });
+
+    router.get('/test/response/303', function*(next) {
+        printLog('now to redirect 303');
+        this.redirect('/test');
+        this.status = 303;
+    });
+
+    router.get('/test/response/302', function*(next) {
+        printLog('now to redirect 302');
+        this.redirect('/test');
+    });
+
+    router.get('/test/response/301', function*(next) {
+        printLog('now to redirect permanently');
+        this.redirect('/test');
+        this.status = 301;
+    });
+
+    const onFileBegin = function(name, file) {
+        if (!fs.existsSync('./test/temp')) {
+            try {
+                fs.mkdirSync('./test/temp', '0777');
+            } catch (e) {
+                return null;
+            }
+        }
+
+        file.name = 'test_upload_' + Date.now() + '.png';
+        var folder = path.dirname(file.path);
+        file.path = path.join(folder, file.name);
+
+    };
+
+    router.post('/test/upload/png',
+        this.logRequest,
+        koaBody({
+            multipart: true,
+            formidable: {
+                uploadDir: UPLOAD_DIR,
+                onFileBegin: onFileBegin
+            }
+        }),
+        function*(next) {
+            const file = this.request.body.files.file;
+            this.response.set('reqbody', JSON.stringify(this.request.body.fields));
+            this.response.body = file.path;
+        }
+    );
+
+    router.put('/test/upload/putpng',
+        this.logRequest,
+        koaBody({
+            multipart: true,
+            formidable: {
+                uploadDir: UPLOAD_DIR,
+                onFileBegin: onFileBegin
+            }
+        }),
+        function*(next) {
+            const file = this.request.body.files.file;
+            this.response.body = file.path;
+        }
+    );
+
+    router.put('/test/put', koaBody(), this.logRequest, function*(next) {
+        printLog('requesting put /test/put' + JSON.stringify(this.request));
+        this.response.body = 'something in put';
+    });
+
+    router.delete('/test/delete/:id', this.logRequest, function*(next) {
+        printLog('requesting delete /test/delete/:id'+ JSON.stringify(this.params));
+        this.response.body = 'something in delete';
+    });
+
+    router.head('/test/head', this.logRequest, function*(next) {
+        printLog('requesting head /test/head');
+        this.response.body = ''; // the body will not be passed to response, in HEAD request
+        this.response.set('reqBody', 'head_request_contains_no_resbody');
+    });
+
+    router.options('/test/options', this.logRequest, function*(next) {
+        printLog('requesting options /test/options');
+        this.response.body = 'could_be_empty';
+        this.response.set('Allow', 'GET, HEAD, POST, OPTIONS');
+    });
+
+    // router.connect('/test/connect', function *(next) {
+    //     printLog('requesting connect /test/connect');
+    //     this.response.body = 'connect_established_body';
+    // });
+
+    return router;
+};
+
+KoaServer.prototype.constructWsRouter = function() {
+    const wsRouter = KoaRouter();
+    const self = this;
+    wsRouter.get('/test/socket', function*(next) {
+        const ws = this.websocket;
+        const messageObj = {
+            type: 'initial',
+            content: 'default message'
+        };
+
+        ws.send(JSON.stringify(messageObj));
+        ws.on('message', message => {
+            printLog('message from request socket: ' + message);
+            self.handleRecievedMessage(ws, message);
+        });
+        yield next;
+    });
+
+    return wsRouter;
+};
+
+KoaServer.prototype.getRequestRecord = function (key) {
+    return this.requestRecordMap[key] || {};
+};
+
+KoaServer.prototype.getProxyRequestRecord = function (key) {
+    key = PROXY_KEY_PREFIX + key;
+    return this.requestRecordMap[key] || {};
+};
+
+KoaServer.prototype.handleRecievedMessage = function(ws, message) {
+    const newMessage = {
+        type: 'onMessage',
+        content: message
+    };
+    ws.send(JSON.stringify(newMessage));
+};
+
+KoaServer.prototype.start = function() {
+    printLog('Starting the server...');
+    const router = this.constructRouter();
+    const wsRouter = this.constructWsRouter();
+    const self = this;
+    const app = Koa();
+    websocket(app);
+
+    app.use(router.routes());
+    app.ws.use(wsRouter.routes());
+    this.httpServer = app.listen(DEFAULT_PORT);
+
+    printLog('HTTP is now listening on port :' + DEFAULT_PORT);
+
+    certMgr.getCertificate('localhost', function(error, keyContent, crtContent) {
+        if (error) {
+            console.error('failed to create https server:', error);
+        } else {
+            self.httpsServer = https.createServer({
+                key: keyContent,
+                cert: crtContent
+            }, app.callback());
+
+            // create wss server
+            const wss = new WebSocketServer({
+                server: self.httpsServer
+            });
+
+            wss.on('connection', function connection(ws) {
+                ws.on('message', function incoming(message) {
+                    printLog('received in wss: ' + message);
+                    self.handleRecievedMessage(ws, message);
+                });
+
+            });
+
+            wss.on('error', error => {
+                console.error('erro happened in wss:%s', error);
+            });
+
+            self.httpsServer.listen(HTTPS_PORT);
+
+            printLog('HTTPS is now listening on port :' + HTTPS_PORT);
+
+            printLog('Server started successfully');
+        }
+    });
+
+    return this;
+};
+
+KoaServer.prototype.close = function() {
+    printLog('Closing server now...');
+    this.httpServer && this.httpServer.close();
+    this.httpsServer && this.httpsServer.close();
+    this.requestRecordMap = {};
+    printLog('Server closed successfully');
+};
+
+
+function printLog(content) {
+    console.log(color.cyan('===SERVER LOG===' + content));
+}
+
+
+module.exports = KoaServer;
\ No newline at end of file
diff --git a/test/server/startServer.js b/test/server/startServer.js
new file mode 100644
index 0000000..15af246
--- /dev/null
+++ b/test/server/startServer.js
@@ -0,0 +1,3 @@
+const Server = require('./server.js');
+
+new Server();
\ No newline at end of file
diff --git a/test/test.sh b/test/test.sh
index 054cc28..b752548 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -1,5 +1,8 @@
 #!/bin/bash
 
-echo "nodeunit is required to run these test cases"
+echo "Begin to run the test suites, JASMINE is required.\n"
+echo "Removing test temp directory before running"
+rm -rf ./test/temp/*
+echo "Removing done, test cases now running"
 node -v
-nodeunit test.js
\ No newline at end of file
+jasmine JASMINE_CONFIG_PATH=./jasmine.json
diff --git a/test/test_rules/shouldUseLocalResponseRule.js b/test/test_rules/shouldUseLocalResponseRule.js
new file mode 100644
index 0000000..ac32bb1
--- /dev/null
+++ b/test/test_rules/shouldUseLocalResponseRule.js
@@ -0,0 +1,22 @@
+/*
+* Rule defination for shouldUseLocalResponse
+*
+*/
+
+const dealLocalBody = 'handled_in_local_response';
+
+module.exports = {
+    shouldUseLocalResponse: function (req, reqBody) {
+        return req.url.indexOf('uselocal') > -1;
+    },
+    shouldInterceptHttpsReq: function () {
+        return true;
+    },
+    dealLocalResponse: function (req, reqBody, callback) {
+        const header = {
+            'Via-Proxy-Local': 'true'
+        };
+
+        callback(200, header, dealLocalBody);
+    }
+};
diff --git a/test/util/CommonUtil.js b/test/util/CommonUtil.js
new file mode 100644
index 0000000..430f138
--- /dev/null
+++ b/test/util/CommonUtil.js
@@ -0,0 +1,153 @@
+/**
+*
+* The utility class for test
+*/
+const zlib = require('zlib');
+const color = require('colorful');
+
+/*
+* Compare whether tow object are equal
+*/
+function isObjectEqual (source = {} , target = {}, url = '') {
+    source = Object.assign({}, source);
+    target = Object.assign({}, target);
+    let isEqual = true;
+
+    for(const key in source) {
+        isEqual = isEqual && source[key] === target[key];
+
+        if (!isEqual) {
+            console.info('source object :', source);
+            console.info('target object :', target);
+            printError(`different key in isObjectEqual is: "${key}", source is "${source[key]}",
+                target is "${target[key]}" the url is ${url}`);
+            break;
+        }
+
+        delete source[key];
+        delete target[key];
+    }
+
+    for(const key in target) {
+        isEqual = isEqual && source[key] === target[key];
+
+        if (!isEqual) {
+            console.info('source object :', source);
+            console.info('target object :', target);
+            printError(`different key in isObjectEqual is: "${key}", source is "${source[key]}",
+                target is "${target[key]}" the url is ${url}`);
+            break;
+        }
+
+        delete source[key];
+        delete target[key];
+    }
+
+    return isEqual;
+}
+
+/*
+* Compare the header between direct with proxy
+* Will exclude the header(s) which modified by proxy
+*/
+function isCommonResHeaderEqual (directHeaders, proxyHeaders, requestUrl) {
+    directHeaders = Object.assign({}, directHeaders);
+    proxyHeaders = Object.assign({}, proxyHeaders);
+    let isEqual = true;
+    const mustEqualFileds = []; // the fileds that have to be equal, or the assert will be failed
+
+    if (!/gzip/i.test(directHeaders['content-encoding'])) {
+        // if the content is gzipped, proxy will unzip and remove the header
+        mustEqualFileds.push('content-encoding');
+        mustEqualFileds.push('content-length');
+    }
+    mustEqualFileds.push('content-type');
+    mustEqualFileds.push('cache-control');
+    mustEqualFileds.push('allow');
+
+    // ensure the required fileds are same
+    mustEqualFileds.forEach(filedName => {
+        isEqual = directHeaders[filedName] === proxyHeaders[filedName];
+        delete directHeaders[filedName];
+        delete proxyHeaders[filedName];
+    });
+
+    // remained filed are good to be same, but are allowed to be different
+    // will warn out those different fileds
+    for (const key in directHeaders) {
+        if (directHeaders[key] !== proxyHeaders[key]) {
+            printWarn(`key "${key}" of two response headers are different in request "${requestUrl}" :
+             direct is: "${directHeaders[key]}", proxy is: "${proxyHeaders[key]}"`);
+        }
+        continue;
+    }
+
+    return isEqual;
+}
+
+/*
+* Compare the request between direct with proxy
+*
+*/
+function isCommonReqEqual(url, serverInstance) {
+    try{
+        url = url.replace('https://', '').replace('http://', ''); // only the remained path is required
+        let isEqual = true;
+
+        const directReqObj = serverInstance.getRequestRecord(url);
+        const proxyReqObj = serverInstance.getProxyRequestRecord(url);
+
+        // ensure the proxy header is correct
+        isEqual = isEqual && proxyReqObj.headers['via-proxy'] === 'true';
+        delete proxyReqObj.headers['via-proxy'];
+
+        // exclued accept-encoding from comparing, since the proxy will remove it before sending it out
+        delete directReqObj.headers['accept-encoding'];
+
+        // per undefined header, proxy will set it with 0, and an empty request body
+        if (typeof directReqObj.headers['content-length'] === 'undefined') {
+
+            directReqObj.headers['content-length'] = "0";
+        }
+
+        directReqObj.headers['content-type'] = trimFormContentType(directReqObj.headers['content-type']);
+        proxyReqObj.headers['content-type'] = trimFormContentType(proxyReqObj.headers['content-type']);
+
+        isEqual = isEqual && directReqObj.url === proxyReqObj.url;
+        isEqual = isEqual && isObjectEqual(directReqObj.headers, proxyReqObj.headers, url);
+        isEqual = isEqual && directReqObj.body === proxyReqObj.body;
+        return isEqual;
+    } catch (e) {
+        console.error(e);
+    }
+
+}
+
+/*
+* for multipart-form, the boundary will be different with each update, we trim it here
+*/
+function trimFormContentType (contentType = '') {
+    return contentType.replace(/boundary.*/, '');
+}
+
+
+function printLog (content) {
+    console.log(color.blue('==LOG==: ' + content));
+}
+
+function printWarn(content) {
+    console.log(color.magenta('==WARN==: ' + content));
+}
+
+function printError(content) {
+    console.log(color.red('==ERROR==: ' + content));
+}
+
+module.exports = {
+    isObjectEqual,
+    isCommonResHeaderEqual,
+    printLog,
+    printWarn,
+    printError,
+    isCommonReqEqual
+};
diff --git a/test/util/HttpUtil.js b/test/util/HttpUtil.js
new file mode 100644
index 0000000..4f308e6
--- /dev/null
+++ b/test/util/HttpUtil.js
@@ -0,0 +1,262 @@
+/**
+ * An util to make the request out
+ *
+ */
+const querystring = require('querystring');
+const http = require('http');
+const zlib = require('zlib');
+const Buffer = require('buffer').Buffer;
+const request = require('request');
+const fs = require('fs');
+const WebSocket = require('ws');
+const HttpsProxyAgent = require('https-proxy-agent');
+
+const DEFAULT_HOST = 'localhost';
+const PROXY_HOST = 'http://localhost:8001';
+const SOCKET_PROXY_HOST = 'http://localhost:8001';
+
+
+const HTTP_SERVER_BASE = 'http://localhost:3000';
+const HTTPS_SERVER_BASE = 'https://localhost:3001';
+const WS_SERVER_BASE = 'ws://localhost:3000';
+const WSS_SERVER_BASE = 'wss://localhost:3001';
+
+const DEFAULT_PROXY_OPTIONS = {
+    port: 8001, // proxy的端口
+    method: 'GET',
+    host: 'localhost'
+};
+
+const DEFAULT_OPTIONS = {
+
+};
+
+function getHostFromUrl (url = '') {
+    const hostReg = /^(https{0,1}:\/\/)(\w+)/;
+    const match = url.match(hostReg);
+
+    return match && match[2] ? match[2] : '';
+}
+
+function getPortFromUrl (url = '') {
+    const portReg = /^https{0,1}:\/\/\w+(:(\d+)){0,1}/;
+    const match = url.match(portReg);
+    let port = match && match[2] ? match[2] : '';
+
+    if (!port) {
+        port = url.indexOf('https://') === 0 ? 443 : 80;
+    }
+    return port;
+}
+
+/**
+ * 获取url中的path
+ */
+function getPathFromUrl (url = '') {
+    const pathReg = /^https{0,1}:\/\/\w+(:\d+){0,1}(.+)/;
+    const match = url.match(pathReg);
+    const path = match && match[3] ? match[2] : url;
+    return path;
+}
+
+function proxyRequest (method = 'GET', url, params, headers = {}) {
+    return doRequest(method, url, params, headers, true);
+}
+
+/*
+ * 直接请求到真实服务器,不经过代理服务器
+ *
+ */
+function directRequest (method = 'GET', url, params, headers = {}) {
+    return doRequest(method, url, params, headers);
+}
+
+function directUpload (url, filepath, formParams = {}, headers = {}) {
+    return doUpload(url, 'POST', filepath, formParams, headers);
+}
+
+function proxyUpload (url, filepath, formParams = {}, headers = {}) {
+    return doUpload(url, 'POST', filepath, formParams, headers, true);
+}
+
+function directPutUpload (url, filepath, formParams = {}, headers = {}) {
+    return doUpload(url, 'PUT', filepath, formParams, headers);
+}
+
+function proxyPutUpload (url, filepath, headers = {}) {
+    return doUpload(url, 'PUT', filepath, headers, true);
+}
+
+function doRequest (method = 'GET', url, params, headers = {}, isProxy) {
+    headers = Object.assign({}, headers);
+    const requestData = {
+        method: method,
+        form: params,
+        url: url,
+        headers: headers,
+        rejectUnauthorized: false
+    };
+
+    if (isProxy) {
+        requestData.proxy = PROXY_HOST;
+        requestData.headers['via-proxy'] = 'true';
+    }
+
+    const requestTask = new Promise((resolve, reject) => {
+        request(
+            requestData,
+            function (error, response, body) {
+                if (error) {
+                    reject(error);
+                    return;
+                }
+                resolve(response);
+            }
+        );
+    });
+    return requestTask;
+}
+
+function doUpload (url, method, filepath, formParams, headers = {}, isProxy) {
+    let formData = {
+        file: fs.createReadStream(filepath)
+    };
+
+    formData = Object.assign({}, formData, formParams);
+    headers = Object.assign({}, headers);
+
+    const requestData = {
+        formData: formData,
+        url: url,
+        method: method,
+        headers: headers,
+        json: true,
+        rejectUnauthorized: false
+    };
+
+    if (isProxy) {
+        requestData.proxy = PROXY_HOST;
+        requestData.headers['via-proxy'] = 'true';
+    }
+    const requestTask = new Promise((resolve, reject) => {
+        request(
+            requestData,
+            function (error, response, body) {
+                if (error) {
+                    reject(error);
+                    return;
+                }
+                resolve(response);
+            }
+        );
+    });
+    return requestTask;
+}
+
+function doWebSocket(url, isProxy) {
+    let ws;
+    if (isProxy) {
+        const agent = new HttpsProxyAgent(SOCKET_PROXY_HOST);
+        ws = new WebSocket(url, {
+            agent: agent,
+            rejectUnauthorized: false
+        });
+    } else {
+        ws = new WebSocket(url, {
+            rejectUnauthorized: false
+        });
+    }
+
+    return ws;
+}
+
+function proxyGet (url, params, headers = {}) {
+    return proxyRequest('GET', url, params, headers);
+}
+
+function proxyPost (url, params, headers = {}) {
+    return proxyRequest('POST', url, params, headers);
+}
+
+function proxyPut (url, params, headers = {}) {
+    return proxyRequest('PUT', url, params, headers);
+}
+
+function proxyDelete (url, params, headers = {}) {
+    return proxyRequest('DELETE', url, params, headers);
+}
+
+function proxyHead(url, headers = {}) {
+    return proxyRequest('HEAD', url, {}, headers);
+}
+
+function proxyOptions(url, headers = {}) {
+    return proxyRequest('OPTIONS', url, {}, headers);
+}
+
+function directGet (url, params, headers = {}) {
+    return directRequest('GET', url, params, headers);
+}
+
+function directPost (url, params, headers = {}) {
+    return directRequest('POST', url, params, headers);
+}
+
+function directPut (url, params, headers = {}) {
+    return directRequest('PUT', url, params, headers);
+}
+
+function directDelete (url, params, headers = {}) {
+    return directRequest('DELETE', url, params, headers);
+}
+
+function directHead (url, headers = {}) {
+    return directRequest('HEAD', url, {} , headers);
+}
+
+function directOptions (url, headers ={}) {
+    return directRequest('OPTIONS', url,  {}, headers);
+}
+
+function proxyWs (url) {
+    return doWebSocket(url, true);
+}
+
+function directWs (url) {
+    return doWebSocket(url);
+}
+
+/**
+* generate the final url based on protocol and path
+*
+*/
+function generateUrl (protocol, urlPath) {
+    return protocol === 'http' ? HTTP_SERVER_BASE + urlPath : HTTPS_SERVER_BASE + urlPath;
+}
+
+function generateWsUrl (protocol, urlPath) {
+    return protocol === 'wss' ? WSS_SERVER_BASE + urlPath : WS_SERVER_BASE + urlPath;
+}
+
+module.exports = {
+    proxyGet,
+    proxyPost,
+    directGet,
+    directPost,
+    directUpload,
+    proxyUpload,
+    generateUrl,
+    proxyWs,
+    directWs,
+    generateWsUrl,
+    directPut,
+    proxyPut,
+    directDelete,
+    proxyDelete,
+    directHead,
+    proxyHead,
+    directOptions,
+    proxyOptions,
+    directPutUpload,
+    proxyPutUpload
+};
\ No newline at end of file
diff --git a/test/util/ProxyServerUtil.js b/test/util/ProxyServerUtil.js
new file mode 100644
index 0000000..0a333ec
--- /dev/null
+++ b/test/util/ProxyServerUtil.js
@@ -0,0 +1,65 @@
+/*
+* Utility class for creating proxy server, used to create specfied proxy server
+*
+*/
+
+let proxy = require('../../proxy.js');
+const util = require('../../lib/util.js');
+
+const DEFAULT_OPTIONS = {
+    type: "http",
+    port: 8001,
+    hostname: "localhost",
+    dbFile: null,  // optional, save request data to a specified file, will use in-memory db if not specified
+    webPort: 8002,  // optional, port for web interface
+    socketPort: 8003,  // optional, internal port for web socket, replace this when it is conflict with your own service
+    throttle: 10000,    // optional, speed limit in kb/s
+    disableWebInterface: false, //optional, set it when you don't want to use the web interface
+    setAsGlobalProxy: false, //set anyproxy as your system proxy
+    interceptHttps: true, // intercept https as well
+    silent: false //optional, do not print anything into terminal. do not set it when you are still debugging.
+};
+
+/**
+*
+* @return An instance of proxy, could be closed by calling `instance.close()`
+*/
+function defaultProxyServer () {
+    proxy = util.freshRequire('../proxy.js');
+
+    const options = util.merge({}, DEFAULT_OPTIONS);
+    options.rule = util.freshRequire('./rule_default.js');
+    return new proxy.proxyServer(options);
+}
+
+/*
+* Create proxy server with rule
+* @param rules
+    Object, the rule object which contains required intercept method
+  @return An instance of proxy, could be closed by calling `instance.close()`
+*/
+function proxyServerWithRule (rule) {
+    proxy = util.freshRequire('../proxy.js');
+
+    const options = util.merge({}, DEFAULT_OPTIONS);
+    options.rule = rule;
+
+    return new proxy.proxyServer(options);
+}
+
+function proxyServerWithoutHttpsIntercept (rule) {
+    proxy = util.freshRequire('../proxy.js');
+
+    const options = util.merge({}, DEFAULT_OPTIONS);
+    if (rule) {
+        options.rule = rule;
+    }
+    options.interceptHttps = false;
+    return new proxy.proxyServer(options);
+}
+
+module.exports = {
+    defaultProxyServer,
+    proxyServerWithoutHttpsIntercept,
+    proxyServerWithRule
+};
\ No newline at end of file