<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script src="../../dist/jquery/jquery-1.4.2.min.js"></script> <script src="../../src/o_O.js"></script> <script src="../../src/modules/o_O.model.js"></script> <script src="../../src/modules/o_O.validations.js"></script> <script src="../../src/drivers/jquery/adapters/o_O.dom.js"></script> <script src="../../src/drivers/jquery/modules/o_O.controller.js"></script> <script src="../../src/drivers/jquery/modules/o_O.support.js"></script> <script src="/tests.js"></script> <script src="run_all.js"></script> <link rel="stylesheet" href="qunit.css" type="text/css" media="screen" /> <script type="text/javascript" src="qunit.js"></script> <script> o_O.model.adapter = o_O.dom; o_O('Review', function(that){ that.validates_presence_of('title'); that.validates_presence_of('content'); that.validates_length_of('title', {min: 5, max: 15}); that.validates(function(review){ if(review.score != 99 && review.test === true) { review.errors.push({message: 'Score should be 99'}) } }) that.methods.title_numbered = function(){ return '1. ' + this.title; } return that; }); $(document).ready(function(){ module("Models"); asyncTest('a valid, successful model', 2, function(){ var myReview = Review.initialize({title: "Biscuit", content: "Some Content"}); myReview.save({ loading: function(){ ok('should call the loading callback before success') }, success: function(){ ok('should call the success callback') start(); } }); }); asyncTest('an invalid review',1, function(){ var myReview = Review.initialize(); myReview.save({ success:function(){ ok('should not call the success callback'); }, invalid: function(){ ok('should call the invalid callback'); start(); }, loading: function(){ ok('should not call the loading callback'); } }); }); asyncTest('updating a review', 2, function(){ var myReview = Review.initialize({title: "Biscuit", content: "Some Content"}); myReview.update_attributes({title: 'No! is it', content: 'Dublin'}, { success: function(){ ok('should call the success callback'); start(); }, invalid: function(){ ok('should not cal the invalid callback'); }, loading: function(){ ok('should call the loading callback'); } }); }) asyncTest('updating an invalid review', 1, function(){ var myReview = Review.initialize(); myReview.update_attributes({}, { success: function(){ ok('should call the success callback'); }, invalid: function(){ ok('should not cal the invalid callback'); start(); }, loading: function(){ ok('should call the loading callback'); } }); }) test('destroying a review', 2, function(){ var myReview = Review.initialize(); myReview.destroy({ loading: function(){ ok('loading should be run'); }, success: function(){ ok('success should be run'); } }) }) }); </script> </head> <body> <h1 id="qunit-header">Model Tests (with callbacks)</h1> <h2 id="qunit-banner"></h2> <h2 id="qunit-userAgent"></h2> <ol id="qunit-tests"></ol> </body> </html>