summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-08 23:44:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-08 23:54:14 +0100
commit1e9ac4c5cc486f03d49a8dd04fe83d4000b8fc12 (patch)
tree0568d9c4776f1c50e2982ecd770429aadaec50bc
parentc1df471feacaf2590216aa476ce242908dac38cf (diff)
downloadpoky-1e9ac4c5cc486f03d49a8dd04fe83d4000b8fc12.tar.gz
bitbake: toastergui: Add missing files from 1c2f6b9b7b9e700146944b9d6d2114e0d014ee81
(Bitbake rev: cf2b6b621cb483aa1a1a66c09fc431efc207c91e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/tests/test.js175
-rw-r--r--bitbake/lib/toaster/toastergui/templates/js-unit-tests.html39
2 files changed, 214 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/tests/test.js b/bitbake/lib/toaster/toastergui/static/js/tests/test.js
new file mode 100644
index 0000000000..d610113029
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/tests/test.js
@@ -0,0 +1,175 @@
1"use strict";
2/* Unit tests for Toaster's JS */
3
4/* libtoaster tests */
5
6QUnit.test("Layer alert notification", function(assert) {
7 var layer = {
8 "layerdetailurl":"/toastergui/project/1/layer/22",
9 "vcs_url":"git://example.com/example.git",
10 "detail":"[ git://example.com/example.git | master ]",
11 "vcs_reference":"master",
12 "id": 22,
13 "name":"meta-example"
14 };
15
16 var correctResponse = "You have added <strong>3</strong> layers to your project: <a id=\"layer-affected-name\" href=\"/toastergui/project/1/layer/22\">meta-example</a> and its dependencies <a href=\"/toastergui/project/1/layer/9\" data-original-title=\"\" title=\"\">meta-example-two</a>, <a href=\"/toastergui/project/1/layer/9\" data-original-title=\"\" title=\"\">meta-example-three</a>";
17
18 var layerDepsList = [
19 {
20 "layerdetailurl":"/toastergui/project/1/layer/9",
21 "vcs_url":"git://example.com/example.git",
22 "detail":"[ git://example.com/example.git | master ]",
23 "vcs_reference":"master",
24 "id": 9,
25 "name":"meta-example-two"
26 },
27 {
28 "layerdetailurl":"/toastergui/project/1/layer/9",
29 "vcs_url":"git://example.com/example.git",
30 "detail":"[ git://example.com/example.git | master ]",
31 "vcs_reference":"master",
32 "id": 10,
33 "name":"meta-example-three"
34 },
35 ];
36
37 var msg = libtoaster.makeLayerAddRmAlertMsg(layer, layerDepsList, true);
38 var test = $("<div></div>");
39
40 test.html(msg);
41
42 assert.equal(test.children("strong").text(), "3");
43 assert.equal(test.children("a").length, 3);
44});
45
46QUnit.test("Project info", function(assert){
47 var done = assert.async();
48 libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
49 assert.ok(prjInfo.machine.name);
50 assert.ok(prjInfo.releases.length > 0);
51 assert.ok(prjInfo.layers.length > 0);
52 assert.ok(prjInfo.freqtargets);
53 assert.ok(prjInfo.release);
54 done();
55 });
56});
57
58QUnit.test("Show notification", function(assert){
59 var msg = "Testing";
60 var element = $("#change-notification-msg");
61
62 libtoaster.showChangeNotification(msg);
63
64 assert.equal(element.text(), msg);
65 assert.ok(element.is(":visible"));
66
67 $("#change-notification").hide();
68});
69
70var layer = {
71 "id": 91,
72 "name": "meta-crystalforest",
73 "layerdetailurl": "/toastergui/project/4/layer/91"
74};
75
76QUnit.test("Add layer", function(assert){
77 var done = assert.async();
78
79 /* Wait for the modal to be added to the dom */
80 var checkModal = setInterval(function(){
81 if ($("#dependencies-modal").length > 0) {
82 $("#dependencies-modal .btn-primary").click();
83 clearInterval(checkModal);
84 }
85 }, 200);
86
87 libtoaster.addRmLayer(layer, true, function(deps){
88 assert.equal(deps.length, 1);
89 done();
90 });
91
92});
93
94QUnit.test("Rm layer", function(assert){
95 var done = assert.async();
96
97 libtoaster.addRmLayer(layer, false, function(deps){
98 assert.equal(deps.length, 0);
99 done();
100 });
101
102});
103
104QUnit.test("Parse url params", function(assert){
105 var params = libtoaster.parseUrlParams();
106 assert.ok(params);
107});
108
109QUnit.test("Dump url params", function(assert){
110 var params = libtoaster.dumpsUrlParams();
111 assert.ok(params);
112});
113
114QUnit.test("Make typeaheads", function(assert){
115 var layersT = $("#layers");
116 var machinesT = $("#machines");
117 var projectsT = $("#projects");
118 var recipesT = $("#recipes");
119
120 libtoaster.makeTypeahead(layersT,
121 libtoaster.ctx.layersTypeAheadUrl, {}, function(){});
122
123 libtoaster.makeTypeahead(machinesT,
124 libtoaster.ctx.machinesTypeAheadUrl, {}, function(){});
125
126 libtoaster.makeTypeahead(projectsT,
127 libtoaster.ctx.projectsTypeAheadUrl, {}, function(){});
128
129 libtoaster.makeTypeahead(recipesT,
130 libtoaster.ctx.recipesTypeAheadUrl, {}, function(){});
131
132 assert.ok(recipesT.data('typeahead'));
133 assert.ok(layersT.data('typeahead'));
134 assert.ok(projectsT.data('typeahead'));
135 assert.ok(recipesT.data('typeahead'));
136});
137
138
139
140/* Page init functions */
141
142QUnit.test("Import layer page init", function(assert){
143 assert.throws(importLayerPageInit());
144});
145
146QUnit.test("Project page init", function(assert){
147 assert.throws(projectPageInit());
148});
149
150QUnit.test("Layer details page init", function(assert){
151 assert.throws(layerDetailsPageInit());
152});
153
154QUnit.test("Layer btns init", function(assert){
155 assert.throws(layerBtnsInit({ projectLayers : [] }));
156});
157
158QUnit.test("Table init", function(assert){
159 assert.throws(tableInit({ url : tableUrl }));
160});
161
162$(document).ajaxError(function(event, jqxhr, settings, errMsg){
163 if (errMsg === 'abort')
164 return;
165
166 QUnit.test("Ajax error", function(assert){
167 assert.notOk(jqxhr.responseText);
168 });
169});
170
171
172
173
174
175
diff --git a/bitbake/lib/toaster/toastergui/templates/js-unit-tests.html b/bitbake/lib/toaster/toastergui/templates/js-unit-tests.html
new file mode 100644
index 0000000000..5b8fd84470
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/js-unit-tests.html
@@ -0,0 +1,39 @@
1{% extends "base.html" %}
2{% load projecttags %}
3{% load humanize %}
4{% load static %}
5{% block pagecontent %}
6
7<link rel="stylesheet" href="//code.jquery.com/qunit/qunit-1.18.0.css" />
8
9<script src="//code.jquery.com/qunit/qunit-1.18.0.js"></script>
10
11<script src="{% static 'js/layerDepsModal.js' %}"></script>
12<script src="{% static 'js/projectpage.js' %}"></script>
13
14<script src="{% static 'js/bootstrap.min.js' %}"></script>
15<script src="{% static 'js/filtersnippet.js' %}"></script>
16<script src="{% static 'js/importlayer.js' %}"></script>
17<script src="{% static 'js/prettify.js' %}"></script>
18<script src="{% static 'js/layerBtn.js' %}"></script>
19<script src="{% static 'js/layerDepsModal.js' %}"></script>
20<script src="{% static 'js/projectpage.js' %}"></script>
21<script src="{% static 'js/layerdetails.js' %}"></script>
22<script src="{% static 'js/table.js' %}"></script>
23
24<script>
25 var tableUrl = '{% url 'projectlayers' project.pk %}';
26</script>
27
28<script src="{% static 'js/tests/test.js' %}"></script>
29
30<div id="qunit"></div>
31
32<input type="text" id="layers" placeholder="layers" ></input>
33<input type="text" id="recipes" placeholder="recipes"></input>
34<input type="text" id="projects" placeholder="projects"></input>
35<input type="text" id="machines" placeholder="machines"></input>
36
37{% endblock %}
38
39