1 define(function(require) {
4 /* globals describe, it */
6 var chai = require('libs/chai'),
7 wlxml = require('wlxml/wlxml');
8 //edumedExtension = require('./edumed.js');
10 var expect = chai.expect;
13 var getDocumentFromXML = function(xml, options) {
14 var doc = wlxml.WLXMLDocumentFromXML(xml, options || {});
15 //doc.registerExtension(edumedExtension);
20 describe('Setting answer', function() {
21 it('sets answer (1)', function() {
22 /* jshint multistr:true */
23 var doc = getDocumentFromXML('\
24 <div class="exercise.order">\
25 <div class="list.orderable">\
26 <div class="item.answer" answer="3">Element 3</div>\
27 <div class="item.answer" answer="1">Element 1</div>\
28 <div class="item.answer" answer="2">Element 2</div>\
32 doc.root.object.getItems()[2].setAnswer(1);
34 var items = doc.root.object.getItems();
36 expect(items[0].getAnswer()).to.equal(3);
37 expect(items[1].getAnswer()).to.equal(2);
38 expect(items[2].getAnswer()).to.equal(1);
41 it('sets answer (2)', function() {
42 /* jshint multistr:true */
43 var doc = getDocumentFromXML('\
44 <div class="exercise.order">\
45 <div class="list.orderable">\
46 <div class="item.answer" answer="1">Element 1</div>\
47 <div class="item.answer" answer="2">Element 2</div>\
48 <div class="item.answer" answer="3">Element 3</div>\
51 doc.transaction(function() {
52 doc.root.object.getItems()[2].setAnswer(2);
54 error: function(e) { throw e;}
58 var items = doc.root.object.getItems();
60 expect(items[0].getAnswer()).to.equal(1);
61 expect(items[1].getAnswer()).to.equal(3);
62 expect(items[2].getAnswer()).to.equal(2);
67 describe('Assign exercise', function() {
68 /* jshint multistr:true */
69 it('assigns source to destination', function() {
70 var doc = getDocumentFromXML('\
71 <div class="exercise.assign">\
72 <div class="list" target="kategorie">\
73 <div class="item.answer">Element 1</div>\
74 <div class="item.answer">Element 2</div>\
76 <div class="list" id="kategorie">\
77 <div class="item" id="kat1">Kategoria 1</div>\
78 <div class="item" id="kat2">Kategoria 2</div>\
82 element = exercise.object.getSourceItems()[1],
83 categories = exercise.object.getDestinationItems(),
84 elementNode = exercise.contents()[0].contents()[1];
86 element.assignTo(categories[0]);
87 expect(elementNode.getAttr('answer')).to.equal('kat1');
88 expect(element.isAssignedTo(categories[0])).to.equal(true);
90 element.assignTo(categories[1]);
91 expect(elementNode.getAttr('answer')).to.equal('kat1,kat2');
92 expect(element.isAssignedTo(categories[1])).to.equal(true);
94 it('removes assignment between source and destination', function() {
95 var doc = getDocumentFromXML('\
96 <div class="exercise.assign">\
97 <div class="list" target="kategorie">\
98 <div class="item.answer">Element 1</div>\
99 <div class="item.answer" answer="kat1,kat2">Element 2</div>\
101 <div class="list" id="kategorie">\
102 <div class="item" id="kat1">Kategoria 1</div>\
103 <div class="item" id="kat2">Kategoria 2</div>\
107 element = exercise.object.getSourceItems()[1],
108 categories = exercise.object.getDestinationItems(),
109 elementNode = exercise.contents()[0].contents()[1];
111 element.removeFrom(categories[0]);
112 expect(elementNode.getAttr('answer')).to.equal('kat2');
114 element.removeFrom(categories[1]);
115 expect(elementNode.getAttr('answer')).to.equal(undefined, 'empty');