add tests and fix some minor issues

This commit is contained in:
Manuel Araoz 2014-07-01 19:49:05 -03:00
parent 433f1570de
commit 8b25b5932f
3 changed files with 29 additions and 6 deletions

View File

@ -1,20 +1,18 @@
'use strict';
angular.module('copayApp.controllers').controller('UriPaymentController', function($rootScope, $scope, $routeParams) {
var data = $routeParams.data;
var data = decodeURIComponent($routeParams.data);
var splitDots = data.split(':');
$scope.protocol = splitDots[0];
data = splitDots[1];
var splitQuestion = data.split('?');
$scope.address = splitQuestion[0];
data = decodeURIComponent(splitQuestion[1]);
var search = splitQuestion[1];
data = JSON.parse('{"' + search.replace(/&/g, '","').replace(/=/g, '":"') + '"}',
function(key, value) {
return key === "" ? value : decodeURIComponent(value);
});
$scope.amount = data.amount;
$scope.amount = parseInt(data.amount);
$scope.message = data.message;
});

View File

@ -5,7 +5,6 @@ var UriHandler = function() {};
UriHandler.prototype.register = function() {
var base = window.location.origin + '/';
var url = base + '#/uri_payment/%s';
console.log(url);
navigator.registerProtocolHandler('bitcoin',
url, 'Copay');
};

View File

@ -300,7 +300,7 @@ describe("Unit: Controllers", function() {
'<form name="form">' +
'<input type="number" id="amount" name="amount" placeholder="Amount" ng-model="amount" min="0.0001" max="10000000" enough-amount required>' +
'</form>'
);
);
scope.model = {
amount: null
};
@ -368,4 +368,30 @@ describe("Unit: Controllers", function() {
});
});
describe('UriPayment Controller', function() {
var what;
beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
var routeParams = {
data: 'bitcoin:19mP9FKrXqL46Si58pHdhGKow88SUPy1V8%3Famount=1&message=a%20bitcoin%20donation'
};
what = $controller('UriPaymentController', {
$scope: scope,
$routeParams: routeParams
});
}));
it('should exist', function() {
should.exist(what);
});
it('should parse url correctly', function() {
should.exist(what);
scope.protocol.should.equal('bitcoin');
scope.address.should.equal('19mP9FKrXqL46Si58pHdhGKow88SUPy1V8');
scope.amount.should.equal(1);
scope.message.should.equal('a bitcoin donation');
});
});
});