added testing framework for the browser
This commit is contained in:
parent
b579302b64
commit
12d7274588
|
@ -30,7 +30,11 @@
|
|||
"beforeEach",
|
||||
"after",
|
||||
"afterEach",
|
||||
"requirejs"
|
||||
"requirejs",
|
||||
"it",
|
||||
"chai",
|
||||
"bitcore"
|
||||
|
||||
],
|
||||
"indent": false, // Specify indentation spacing
|
||||
"devel": true, // Allow development statements e.g. `console.log();`.
|
||||
|
|
|
@ -14,7 +14,8 @@ module.exports = function(grunt) {
|
|||
src: ['main.js'],
|
||||
dest: 'browser/bundle.js',
|
||||
options: {
|
||||
alias: ['browserify-bignum/bignumber.js:bignum']
|
||||
alias: ['browserify-bignum/bignumber.js:bignum'],
|
||||
standalone: 'bitcore'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
26
main.js
26
main.js
|
@ -1,23 +1,9 @@
|
|||
//var Enc = require('./util/EncodedData').class();
|
||||
/*
|
||||
* Bitcore bindings for the browser
|
||||
*/
|
||||
|
||||
var bignum = require('bignum');
|
||||
bignum.config({EXPONENTIAL_AT: 9999999, DECIMAL_PLACES: 0, ROUNDING_MODE: 1});
|
||||
console.log(bignum('9832087987979879879879879879879879879879879879').toString());
|
||||
var b = bignum('782910138827292261791972728324982')
|
||||
.sub('182373273283402171237474774728373')
|
||||
.div(8);
|
||||
console.log(b.toString());
|
||||
module.exports.bignum = require('bignum');
|
||||
module.exports.base58 = require('base58-native');
|
||||
|
||||
module.exports.bignum.config({EXPONENTIAL_AT: 9999999, DECIMAL_PLACES: 0, ROUNDING_MODE: 1});
|
||||
|
||||
var base58 = require('base58-native');
|
||||
var m = 'mqqa8xSMVDyf9QxihGnPtap6Mh6qemUkcu';
|
||||
var d = base58.decode(m);
|
||||
var m2 = base58.encode(d);
|
||||
console.log(m);
|
||||
console.log(d);
|
||||
console.log(m2);
|
||||
|
||||
var m = base58.encode(base58.decode('mqqa8xSMVDyf9QxihGnPtap6Mh6qemUkcu'));
|
||||
|
||||
var base58Check = require('base58-native').base58Check;
|
||||
console.log(base58Check.encode(base58Check.decode('mqqa8xSMVDyf9QxihGnPtap6Mh6qemUkcu')));
|
||||
|
|
|
@ -45,7 +45,8 @@
|
|||
"devDependencies": {
|
||||
"grunt-contrib-watch": "~0.5.3",
|
||||
"grunt-mocha-test": "~0.8.2",
|
||||
"grunt-browserify": "~1.3.0"
|
||||
"grunt-browserify": "~1.3.0",
|
||||
"chai": "~1.9.0"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Mocha</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="mocha.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="mocha.js"></script>
|
||||
<script src="../node_modules/chai/chai.js"></script>
|
||||
<script>mocha.setup('bdd')</script>
|
||||
<script src="../browser/bundle.js"></script>
|
||||
|
||||
<script src="test.main.js"></script>
|
||||
<script src="test.base58.js"></script>
|
||||
<script>
|
||||
mocha.run();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,270 @@
|
|||
@charset "utf-8";
|
||||
|
||||
body {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
#mocha {
|
||||
font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
margin: 60px 50px;
|
||||
}
|
||||
|
||||
#mocha ul,
|
||||
#mocha li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#mocha ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#mocha h1,
|
||||
#mocha h2 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#mocha h1 {
|
||||
margin-top: 15px;
|
||||
font-size: 1em;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
#mocha h1 a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha h1 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#mocha .suite .suite h1 {
|
||||
margin-top: 0;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
#mocha .hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha h2 {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#mocha .suite {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#mocha .test {
|
||||
margin-left: 15px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#mocha .test.pending:hover h2::after {
|
||||
content: '(pending)';
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
#mocha .test.pass.medium .duration {
|
||||
background: #c09853;
|
||||
}
|
||||
|
||||
#mocha .test.pass.slow .duration {
|
||||
background: #b94a48;
|
||||
}
|
||||
|
||||
#mocha .test.pass::before {
|
||||
content: '✓';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #00d6b2;
|
||||
}
|
||||
|
||||
#mocha .test.pass .duration {
|
||||
font-size: 9px;
|
||||
margin-left: 5px;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-ms-border-radius: 5px;
|
||||
-o-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#mocha .test.pass.fast .duration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha .test.pending {
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.pending::before {
|
||||
content: '◦';
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.fail {
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test.fail pre {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha .test.fail::before {
|
||||
content: '✖';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test pre.error {
|
||||
color: #c00;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* (1): approximate for browsers not supporting calc
|
||||
* (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border)
|
||||
* ^^ seriously
|
||||
*/
|
||||
#mocha .test pre {
|
||||
display: block;
|
||||
float: left;
|
||||
clear: left;
|
||||
font: 12px/1.5 monaco, monospace;
|
||||
margin: 5px;
|
||||
padding: 15px;
|
||||
border: 1px solid #eee;
|
||||
max-width: 85%; /*(1)*/
|
||||
max-width: calc(100% - 42px); /*(2)*/
|
||||
word-wrap: break-word;
|
||||
border-bottom-color: #ddd;
|
||||
-webkit-border-radius: 3px;
|
||||
-webkit-box-shadow: 0 1px 3px #eee;
|
||||
-moz-border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 3px #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#mocha .test h2 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#mocha .test a.replay {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
line-height: 15px;
|
||||
text-align: center;
|
||||
background: #eee;
|
||||
font-size: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
-webkit-transition: opacity 200ms;
|
||||
-moz-transition: opacity 200ms;
|
||||
transition: opacity 200ms;
|
||||
opacity: 0.3;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
#mocha .test:hover a.replay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#mocha-report.pass .test.fail {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.fail .test.pass {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.pending .test.pass,
|
||||
#mocha-report.pending .test.fail {
|
||||
display: none;
|
||||
}
|
||||
#mocha-report.pending .test.pass.pending {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#mocha-error {
|
||||
color: #c00;
|
||||
font-size: 1.5em;
|
||||
font-weight: 100;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#mocha-stats {
|
||||
position: fixed;
|
||||
top: 15px;
|
||||
right: 10px;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
color: #888;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#mocha-stats .progress {
|
||||
float: right;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#mocha-stats em {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha-stats a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha-stats a:hover {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#mocha-stats li {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
list-style: none;
|
||||
padding-top: 11px;
|
||||
}
|
||||
|
||||
#mocha-stats canvas {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#mocha code .comment { color: #ddd; }
|
||||
#mocha code .init { color: #2f6fad; }
|
||||
#mocha code .string { color: #5890ad; }
|
||||
#mocha code .keyword { color: #8a6343; }
|
||||
#mocha code .number { color: #2f6fad; }
|
||||
|
||||
@media screen and (max-device-width: 480px) {
|
||||
#mocha {
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#mocha #stats {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
|||
'use strict';
|
||||
|
||||
var expect = chai.expect;
|
||||
var should = chai.should();
|
||||
|
||||
var bignum = bitcore.bignum;
|
||||
var base58 = bitcore.base58;
|
||||
var base58Check = base58.base58Check;
|
||||
|
||||
describe('bignum module basics', function() {
|
||||
it('should initialze the main object', function() {
|
||||
should.exist(bitcore.bignum);
|
||||
});
|
||||
it('should create a bignum from string', function() {
|
||||
var n = bignum('9832087987979879879879879879879879879879879879');
|
||||
should.exist(n);
|
||||
});
|
||||
it('should perform basic math operations', function() {
|
||||
var b = bignum('782910138827292261791972728324982')
|
||||
.sub('182373273283402171237474774728373')
|
||||
.div(13);
|
||||
b.toNumber().should.equal(46195143503376160811884457968969);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('base58 module', function() {
|
||||
it('should initialze the main object', function() {
|
||||
should.exist(bitcore.base58);
|
||||
});
|
||||
it('should obtain the same string in base58 roundtrip', function() {
|
||||
var m = 'mqqa8xSMVDyf9QxihGnPtap6Mh6qemUkcu';
|
||||
base58.encode(base58.decode(m)).should.equal(m);
|
||||
});
|
||||
it('should obtain the same string in base58Check roundtrip', function() {
|
||||
var m = '1QCJj1gPZKx2EwzGo9Ri8mMBs39STvDYcv';
|
||||
base58Check.encode(base58Check.decode(m)).should.equal(m);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
|
||||
var expect = chai.expect;
|
||||
var should = chai.should();
|
||||
|
||||
describe('Initialization of bitcore', function() {
|
||||
it('should initialze the main object', function() {
|
||||
should.exist(bitcore);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue