Skip to content

Commit 790db41

Browse files
committed
added js test files
1 parent ada7d7b commit 790db41

26 files changed

+1044
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ assets/img/*.png
1111
!assets/img/logo.png
1212
!assets/javascript/**/*.js
1313
assets/vendor
14+
!test/js/**/*.js
1415
build
1516
docs
1617
node_modules
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
describe('Main menu navigation', function() {
2+
beforeEach(function() {
3+
browser.get('http://localhost:8000');
4+
});
5+
6+
it('should select the homepage', function() {
7+
var el = $('.menu-component li:first-child a');
8+
9+
expect(el.getAttribute('class')).toContain('selected');
10+
});
11+
12+
it('should change the page', function() {
13+
var el = $('.menu-component li:nth-child(2) a'),
14+
href = el.getAttribute('href');
15+
16+
runs(function() {
17+
el.click();
18+
});
19+
20+
waits(500);
21+
22+
runs(function() {
23+
expect(browser.getCurrentUrl()).toContain(href);
24+
expect(el.getAttribute('class')).toContain('selected');
25+
});
26+
});
27+
});

test/js/e2e/protractor.conf.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
var config,
2+
onPrepare;
3+
4+
onPrepare = function() {
5+
var dir,
6+
wrench;
7+
8+
require('jasmine-reporters');
9+
10+
wrench = require('wrench');
11+
dir = 'test/report/protractor/';
12+
global.select = global.by;
13+
14+
wrench.mkdirSyncRecursive(dir);
15+
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(dir, true, true));
16+
};
17+
18+
config = {
19+
framework: 'jasmine',
20+
onPrepare: onPrepare,
21+
specs: ['**/*-step.js']
22+
};
23+
24+
if (process.env.TRAVIS) {
25+
config.sauceUser = process.env.SAUCE_USERNAME;
26+
config.sauceKey = process.env.SAUCE_ACCESS_KEY;
27+
config.capabilities = {
28+
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
29+
build: process.env.TRAVIS_BUILD_NUMBER,
30+
name: 'Radian build ' + process.env.TRAVIS_BUILD_NUMBER
31+
};
32+
}
33+
34+
exports.config = config;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
define([
2+
'config',
3+
'angular',
4+
'collection/menu-items-collection',
5+
'vo/menu-item-vo'
6+
], function(cfg, A, collection, vo) {
7+
describe('Menu items collection', function() {
8+
var $q,
9+
$rootScope;
10+
11+
beforeEach(inject(function($injector) {
12+
$q = $injector.get('$q');
13+
$rootScope = $injector.get('$rootScope');
14+
}));
15+
16+
it('should a nice collection', function() {
17+
var dfd = $q.defer(),
18+
cb,
19+
data,
20+
datas;
21+
data = {
22+
title: 'foo',
23+
href: '/bar'
24+
};
25+
datas = [data, data, data];
26+
cb = {
27+
success: function(VOs) {
28+
expect(VOs.length).toBe(datas.length);
29+
}
30+
};
31+
32+
dfd.promise.then(cb.success);
33+
collection(dfd, datas);
34+
35+
$rootScope.$digest();
36+
});
37+
});
38+
});
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
define([
2+
'config',
3+
'angular',
4+
'collection/stub-collection',
5+
'vo/stub-vo'
6+
], function(cfg, A, collection, vo) {
7+
describe('Stub collection', function() {
8+
var $q,
9+
$rootScope;
10+
11+
beforeEach(inject(function($injector) {
12+
$q = $injector.get('$q');
13+
$rootScope = $injector.get('$rootScope');
14+
}));
15+
16+
it('should a nice collection', function() {
17+
var dfd = $q.defer(),
18+
cb,
19+
data,
20+
datas;
21+
data = {};
22+
datas = [data, data, data];
23+
cb = {
24+
success: function(VOs) {
25+
expect(VOs.length).toBe(datas.length);
26+
}
27+
};
28+
29+
dfd.promise.then(cb.success);
30+
collection(dfd, datas);
31+
32+
$rootScope.$digest();
33+
});
34+
});
35+
});
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
define([
2+
'config',
3+
'angular',
4+
'controller/app-controller',
5+
'factory/page-loader-factory',
6+
'factory/page-title-factory'
7+
], function(cfg, A) {
8+
describe('App controller', function() {
9+
var $scope,
10+
createController,
11+
pageLoaderFactory,
12+
pageTitleFactory;
13+
14+
beforeEach(module(cfg.ngApp));
15+
beforeEach(inject(function($injector) {
16+
var $controller = $injector.get('$controller'),
17+
$rootScope = $injector.get('$rootScope');
18+
19+
pageLoaderFactory = $injector.get('pageLoaderFactory');
20+
pageTitleFactory = $injector.get('pageTitleFactory');
21+
$scope = $rootScope.$new();
22+
23+
createController = function() {
24+
$controller('AppController', {
25+
$scope: $scope,
26+
pageTitleFactory: pageTitleFactory
27+
});
28+
};
29+
}));
30+
31+
it('should add the header and footer partials', function() {
32+
var controller = createController();
33+
expect($scope.headerPartial).toBeDefined();
34+
expect($scope.footerPartial).toBeDefined();
35+
});
36+
37+
it('should change the title when an event is fired from pageTitleFactory', function() {
38+
var controller = createController(),
39+
title = 'foo';
40+
41+
pageTitleFactory.setTitle(title);
42+
expect($scope.pageTitle).toContain(title);
43+
});
44+
45+
it('should hide the loader when an event is fired from pageLoaderFactory', function() {
46+
var controller = createController();
47+
48+
$scope.handleViewLoaded();
49+
expect($scope.hideLoader).toBe(true);
50+
});
51+
});
52+
});
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
define([
2+
'config',
3+
'angular',
4+
'controller/error-controller'
5+
], function(cfg, A) {
6+
describe('Error controller', function() {
7+
var $routeParams,
8+
$scope,
9+
createController,
10+
pageTitleFactory;
11+
12+
beforeEach(module(cfg.ngApp));
13+
beforeEach(inject(function($injector) {
14+
var $controller = $injector.get('$controller'),
15+
$rootScope = $injector.get('$rootScope');
16+
17+
$routeParams = $injector.get('$routeParams');
18+
pageTitleFactory = $injector.get('pageTitleFactory');
19+
$scope = $rootScope.$new();
20+
21+
createController = function() {
22+
$controller('ErrorController', {
23+
$scope: $scope,
24+
$routeParams: $routeParams
25+
});
26+
};
27+
}));
28+
29+
it('should change the $scope.code and title according to $routeParams.code', function() {
30+
var code = '123',
31+
cb,
32+
controller;
33+
34+
cb = {
35+
handleTitle: function(event, newTitle) {
36+
expect(newTitle).toContain(code);
37+
expect($scope.code).toBe(code);
38+
}
39+
};
40+
41+
pageTitleFactory.addListener(cb.handleTitle);
42+
$routeParams.code = code;
43+
44+
controller = createController();
45+
});
46+
47+
it('should default $scope.code to 404 if there is no $routeParams.code', function() {
48+
var controller = createController();
49+
50+
expect($scope.code).toBe('404');
51+
});
52+
});
53+
});
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
define([
2+
'config',
3+
'angular',
4+
'controller/footer-controller'
5+
], function(cfg, A) {
6+
describe('Footer controller', function() {
7+
var $scope,
8+
createController;
9+
10+
beforeEach(module(cfg.ngApp));
11+
beforeEach(inject(function($injector) {
12+
var $controller = $injector.get('$controller'),
13+
$rootScope = $injector.get('$rootScope');
14+
15+
$scope = $rootScope.$new();
16+
17+
createController = function() {
18+
$controller('FooterController', {
19+
$scope: $scope
20+
});
21+
};
22+
}));
23+
24+
it('should load', function() {
25+
var controller = createController();
26+
});
27+
});
28+
});
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
define([
2+
'config',
3+
'angular',
4+
'controller/header/header-controller'
5+
], function(cfg, A) {
6+
describe('Header controller', function() {
7+
var $scope,
8+
createController;
9+
10+
beforeEach(module(cfg.ngApp));
11+
beforeEach(inject(function($injector) {
12+
var $controller = $injector.get('$controller'),
13+
$rootScope = $injector.get('$rootScope');
14+
15+
$scope = $rootScope.$new();
16+
17+
createController = function() {
18+
$controller('HeaderController', {
19+
$scope: $scope
20+
});
21+
};
22+
}));
23+
24+
it('should add the menu partial', function() {
25+
var controller = createController();
26+
27+
expect($scope.menuPartial).toBeDefined();
28+
});
29+
});
30+
});

0 commit comments

Comments
 (0)