jasmineExample
HTML
<script src="http://jasmine.github.io/2.2/lib/jasmine.js"></script>
<script src="http://jasmine.github.io/2.2/lib/jasmine-html.js"></script>
<link rel="stylesheet" href="http://jasmine.github.io/2.2/lib/jasmine.css">
<script src="http://jasmine.github.io/2.2/lib/boot.js"></script>
<script src="https://rawgit.com/mike-goodwin/owasp-threat-dragon/master/td/public/libs/nools/nools.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-mocks.js"></script>
<title>Jasmine Spec Runner v2.2.0</title>
JavaScript
var app = angular.module('app', []);
app.run(['$rootScope', function ($rootScope) {}]);
var app = angular.module('app', []);
app.run(['$rootScope', function ($rootScope) {}]);
//threat engine service definition
var serviceId = 'threatengine';
var flow;
angular.module('app').factory(serviceId, ['$q', threatengine]);
function threatengine($q) {
var service = { generateForElement: generateForElement };
var Threats = function () { this.collection = []; }
var Element = function (element) { this.type = element.attributes.type; }
if (flow == null) { flow = initialiseFlow(); }
return service;
function generateForElement(element) {
var threats = new Threats();
var el = new Element(element);
return flow.getSession(threats, el).match().then(function () {
console.log('match completed');
return threats.collection;
}, function (err) {
// NOTE: process error of match() call
});
}
function initialiseFlow() {
return nools.flow('Element threat generation', function (flow) {
flow.rule('Spoofing Threat Rule', [
[Element, 'el', 'el.type == "tm.Process"'],
[Threats, 'threats']
], function (facts) {
console.log('rule 1 processed');
facts.threats.collection.push('Spoofing');
});
flow.rule('Tampering Threat Rule', [
[Element, 'el', 'el.type == "tm.Process"'],
[Threats, 'threats']
], function (facts) {
console.log('rule 2 processed');
facts.threats.collection.push('Tampering');
});
});
}
}
//test definition
describe('threatengine service', function () {
var threatengine;
var $rootScope;
var $q;
var $httpBackend;
var $timeout;
var deferred;
beforeEach(function () {
angular.mock.module('app')
...