angular.js/test/FileControllerTest.js

99 lines
3.4 KiB
JavaScript
Raw Normal View History

2010-01-06 00:36:58 +00:00
FileControllerTest = TestCase('FileControllerTest');
FileControllerTest.prototype.testOnSelectUpdateView = function(){
var view = jQuery('<span><a/><span/></span>');
var swf = {};
2010-01-09 23:02:43 +00:00
var controller = new FileController(view, null, swf);
2010-01-06 00:36:58 +00:00
swf.uploadFile = function(path){};
controller._on_select('A', 9, '9 bytes');
assertEquals(view.find('a').text(), "A");
assertEquals(view.find('span').text(), "9 bytes");
};
FileControllerTest.prototype.testUpdateModelView = function(){
2010-01-09 23:02:43 +00:00
var view = FileController.template('');
2010-01-06 00:36:58 +00:00
var input = $('<input name="value.input">');
var controller;
2010-01-09 23:02:43 +00:00
var scope = new Scope({value:{}, $binder:{updateView:function(){
2010-01-06 00:36:58 +00:00
controller.updateView(scope);
}}});
view.data('scope', scope);
2010-01-09 23:02:43 +00:00
controller = new FileController(view, 'value.input', null, "http://server_base");
2010-01-06 00:36:58 +00:00
var value = '{"text":"A", "size":123, "id":"890"}';
controller._on_uploadCompleteData(value);
controller.updateView(scope);
assertEquals(scope.get('value.input.text'), 'A');
assertEquals(scope.get('value.input.size'), 123);
assertEquals(scope.get('value.input.id'), '890');
assertEquals(scope.get('value.input.url'), 'http://server_base/_attachments/890/A');
assertEquals(view.find('a').text(), "A");
assertEquals(view.find('a').attr('href'), "http://server_base/_attachments/890/A");
assertEquals(view.find('span').text(), "123 bytes");
};
FileControllerTest.prototype.testFileUpload = function(){
expectAsserts(1);
var swf = {};
2010-01-09 23:02:43 +00:00
var controller = new FileController(null, null, swf, "http://server_base");
2010-01-06 00:36:58 +00:00
swf.uploadFile = function(path){
assertEquals("http://server_base/_attachments", path);
};
controller.name = "Name";
controller.upload();
};
FileControllerTest.prototype.testFileUploadNoFileIsNoop = function(){
expectAsserts(0);
var swf = {uploadFile:function(path){
fail();
}};
2010-01-09 23:02:43 +00:00
var controller = new FileController(null, swf);
2010-01-06 00:36:58 +00:00
controller.upload("basePath", null);
};
FileControllerTest.prototype.testRemoveAttachment = function(){
2010-01-09 23:02:43 +00:00
var doc = FileController.template();
2010-01-06 00:36:58 +00:00
var input = $('<input name="file">');
2010-01-09 23:02:43 +00:00
var scope = new Scope();
2010-01-06 00:36:58 +00:00
input.data('scope', scope);
2010-01-09 23:02:43 +00:00
var controller = new FileController(doc, 'file', null, null);
2010-01-06 00:36:58 +00:00
controller.updateView(scope);
assertEquals(false, doc.find('input').attr('checked'));
scope.set('file', {url:'url', size:123});
controller.updateView(scope);
assertEquals(true, doc.find('input').attr('checked'));
doc.find('input').attr('checked', false);
controller.updateModel(scope);
assertNull(scope.get('file'));
doc.find('input').attr('checked', true);
controller.updateModel(scope);
assertEquals('url', scope.get('file.url'));
assertEquals(123, scope.get('file.size'));
};
FileControllerTest.prototype.testShouldEmptyOutOnUndefined = function () {
2010-01-09 23:02:43 +00:00
var view = FileController.template('hello');
var controller = new FileController(view, 'abc', null, null);
2010-01-06 00:36:58 +00:00
2010-01-09 23:02:43 +00:00
var scope = new Scope();
2010-01-06 00:36:58 +00:00
scope.set('abc', {text: 'myname', url: 'myurl', size: 1234});
controller.updateView(scope);
assertEquals("myurl", view.find('a').attr('href'));
assertEquals("myname", view.find('a').text());
assertEquals(true, view.find('input').is(':checked'));
assertEquals("1.2 KB", view.find('span').text());
scope.set('abc', undefined);
controller.updateView(scope);
assertEquals("myurl", view.find('a').attr('href'));
assertEquals("myname", view.find('a').text());
assertEquals(false, view.find('input').is(':checked'));
assertEquals("1.2 KB", view.find('span').text());
};