wip: experiments with Canvas support for exercise.assign
[fnpeditor.git] / src / wlxml / extensions / edumed / edumed.test.js
index c039f0d..a3c9b89 100644 (file)
@@ -64,6 +64,57 @@ describe('Setting answer', function() {
     });
 });
 
     });
 });
 
+describe('Assign exercise', function() {
+    /* jshint multistr:true */
+    it('assigns source to destination', function() {
+        var doc = getDocumentFromXML('\
+                <div class="exercise.assign">\
+                    <div class="list" target="kategorie">\
+                        <div class="item.answer">Element 1</div>\
+                        <div class="item.answer">Element 2</div>\
+                    </div>\
+                    <div class="list" id="kategorie">\
+                        <div class="item" id="kat1">Kategoria 1</div>\
+                        <div class="item" id="kat2">Kategoria 2</div>\
+                    </div>\
+                </div>'),
+            exercise = doc.root,
+            element = exercise.object.getSourceItems()[1],
+            categories = exercise.object.getDestinationItems(),
+            elementNode = exercise.contents()[0].contents()[1];
+        
+        element.assignTo(categories[0]);
+        expect(elementNode.getAttr('answer')).to.equal('kat1');
+        expect(element.isAssignedTo(categories[0])).to.equal(true);
+
+        element.assignTo(categories[1]);
+        expect(elementNode.getAttr('answer')).to.equal('kat1,kat2');
+        expect(element.isAssignedTo(categories[1])).to.equal(true);
+    });
+    it('removes assignment between source and destination', function() {
+        var doc = getDocumentFromXML('\
+                <div class="exercise.assign">\
+                    <div class="list" target="kategorie">\
+                        <div class="item.answer">Element 1</div>\
+                        <div class="item.answer" answer="kat1,kat2">Element 2</div>\
+                    </div>\
+                    <div class="list" id="kategorie">\
+                        <div class="item" id="kat1">Kategoria 1</div>\
+                        <div class="item" id="kat2">Kategoria 2</div>\
+                    </div>\
+                </div>'),
+            exercise = doc.root,
+            element = exercise.object.getSourceItems()[1],
+            categories = exercise.object.getDestinationItems(),
+            elementNode = exercise.contents()[0].contents()[1];
+        
+        element.removeFrom(categories[0]);
+        expect(elementNode.getAttr('answer')).to.equal('kat2');
+
+        element.removeFrom(categories[1]);
+        expect(elementNode.getAttr('answer')).to.equal(undefined, 'empty');
+    });
+});