Skip to content
Permalink
Browse files

Added qunitjs based test unit (for now a parser test) and integrate i…

…t in grunt.js.
  • Loading branch information
ibc committed Feb 12, 2013
1 parent 458f8c7 commit e5933960d13cd1d3cd0e1a2ade3162743b89b776
Showing with 2,542 additions and 8 deletions.
  1. +16 −7 BUILDING.md
  2. +4 −1 grunt.js
  3. +244 −0 qunitjs/css/qunit-1.11.0.css
  4. +19 −0 qunitjs/index.html
  5. +2,152 −0 qunitjs/javascript/qunit-1.11.0.js
  6. +107 −0 qunitjs/javascript/test-parser.js
@@ -1,22 +1,31 @@
## What you need to build JsSIP

You just need to have `Node.js`/`npm` and `git` installed.
You just need to have [Node.js](http://nodejs.org/), [Git](http://git-scm.com/) and [PhantomJS](http://phantomjs.org/) installed.

### Node.js

* [Install Node.js via package manager](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager)
* [Install Node.js from source](http://nodejs.org)
* [Install Node.js from sources](http://nodejs.org)

### Git

* [Install Git](http://git-scm.com/book/en/Getting-Started-Installing-Git)

**NOTE:** `npm` comes with `node` now.

### PhantomJS

* [Install PhantomJS](http://phantomjs.org/download.html)
* In modern Debian/Ubuntu systems PhantomJS can be installed via `apt-get install phantomjs`


## How to build JsSIP

Clone a copy of the main JsSIP git repo by running:
Clone a copy of the main JsSIP git repository by running:
```
git clone https://github.com/versatica/JsSIP.git
```

Enter the directory and install the Node dependencies:
Enter the directory and install the Node.js dependencies:
```
cd JsSIP && npm install
```
@@ -26,9 +35,9 @@ Make sure you have `grunt` installed by testing:
grunt -version
```

Finally, to get a complete version of JsSIP, type the following:
Finally, to run the test units and get a complete version of JsSIP, type the following:
```
grunt
```

The built version of JsSIP will be available in the `dist/` subdirectory in both flavors: normal and minified. Both linted (with JSHint).
The built version of JsSIP will be available in the `dist/` subdirectory in both flavors: normal and minified. Both linted (with [JSHint](http://www.jshint.com/)).
@@ -85,9 +85,12 @@ module.exports = function(grunt) {
},
globals: {}
},
qunit: {
all: ['qunitjs/*.html']
},
uglify: {}
});

// Default task.
grunt.registerTask('default', 'concat:dist lint min concat:post concat:post_min' );
grunt.registerTask('default', 'concat:dist lint min concat:post concat:post_min qunit' );
};
@@ -0,0 +1,244 @@
/**
* QUnit v1.11.0 - A JavaScript Unit Testing Framework
*
* http://qunitjs.com
*
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/

/** Font Family and Sizes */

#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
}

#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
#qunit-tests { font-size: smaller; }


/** Resets */

#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
margin: 0;
padding: 0;
}


/** Header */

#qunit-header {
padding: 0.5em 0 0.5em 1em;

color: #8699a4;
background-color: #0d3349;

font-size: 1.5em;
line-height: 1em;
font-weight: normal;

border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
}

#qunit-header a {
text-decoration: none;
color: #c2ccd1;
}

#qunit-header a:hover,
#qunit-header a:focus {
color: #fff;
}

#qunit-testrunner-toolbar label {
display: inline-block;
padding: 0 .5em 0 .1em;
}

#qunit-banner {
height: 5px;
}

#qunit-testrunner-toolbar {
padding: 0.5em 0 0.5em 2em;
color: #5E740B;
background-color: #eee;
overflow: hidden;
}

#qunit-userAgent {
padding: 0.5em 0 0.5em 2.5em;
background-color: #2b81af;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
}

#qunit-modulefilter-container {
float: right;
}

/** Tests: Pass/Fail */

#qunit-tests {
list-style-position: inside;
}

#qunit-tests li {
padding: 0.4em 0.5em 0.4em 2.5em;
border-bottom: 1px solid #fff;
list-style-position: inside;
}

#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
display: none;
}

#qunit-tests li strong {
cursor: pointer;
}

#qunit-tests li a {
padding: 0.5em;
color: #c2ccd1;
text-decoration: none;
}
#qunit-tests li a:hover,
#qunit-tests li a:focus {
color: #000;
}

#qunit-tests li .runtime {
float: right;
font-size: smaller;
}

.qunit-assert-list {
margin-top: 0.5em;
padding: 0.5em;

background-color: #fff;

border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}

.qunit-collapsed {
display: none;
}

#qunit-tests table {
border-collapse: collapse;
margin-top: .2em;
}

#qunit-tests th {
text-align: right;
vertical-align: top;
padding: 0 .5em 0 0;
}

#qunit-tests td {
vertical-align: top;
}

#qunit-tests pre {
margin: 0;
white-space: pre-wrap;
word-wrap: break-word;
}

#qunit-tests del {
background-color: #e0f2be;
color: #374e0c;
text-decoration: none;
}

#qunit-tests ins {
background-color: #ffcaca;
color: #500;
text-decoration: none;
}

/*** Test Counts */

#qunit-tests b.counts { color: black; }
#qunit-tests b.passed { color: #5E740B; }
#qunit-tests b.failed { color: #710909; }

#qunit-tests li li {
padding: 5px;
background-color: #fff;
border-bottom: none;
list-style-position: inside;
}

/*** Passing Styles */

#qunit-tests li li.pass {
color: #3c510c;
background-color: #fff;
border-left: 10px solid #C6E746;
}

#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
#qunit-tests .pass .test-name { color: #366097; }

#qunit-tests .pass .test-actual,
#qunit-tests .pass .test-expected { color: #999999; }

#qunit-banner.qunit-pass { background-color: #C6E746; }

/*** Failing Styles */

#qunit-tests li li.fail {
color: #710909;
background-color: #fff;
border-left: 10px solid #EE5757;
white-space: pre;
}

#qunit-tests > li:last-child {
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
}

#qunit-tests .fail { color: #000000; background-color: #EE5757; }
#qunit-tests .fail .test-name,
#qunit-tests .fail .module-name { color: #000000; }

#qunit-tests .fail .test-actual { color: #EE5757; }
#qunit-tests .fail .test-expected { color: green; }

#qunit-banner.qunit-fail { background-color: #EE5757; }


/** Result */

#qunit-testresult {
padding: 0.5em 0.5em 0.5em 2.5em;

color: #2b81af;
background-color: #D2E0E6;

border-bottom: 1px solid white;
}
#qunit-testresult .module-name {
font-weight: bold;
}

/** Fixture */

#qunit-fixture {
position: absolute;
top: -10000px;
left: -10000px;
width: 1000px;
height: 1000px;
}
@@ -0,0 +1,19 @@
<!DOCTYPE html>

<html>

<head>
<meta charset="utf-8">
<title>JsSIP Test Units</title>
<link rel="stylesheet" href="css/qunit-1.11.0.css">
<script src="../dist/jssip-0.3.0-devel.js"></script>
<script src="javascript/qunit-1.11.0.js"></script>
</head>

<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="javascript/test-parser.js"></script>
</body>

</html>

0 comments on commit e593396

Please sign in to comment.
You can’t perform that action at this time.