首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

一个运用QUnit开发的分页的Store

2012-10-18 
一个使用QUnit开发的分页的Store测试代码:!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//E

一个使用QUnit开发的分页的Store

测试代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"        "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <title>Ext.dx.PagingStore</title>    <link type="text/css" rel="stylesheet" href="qunit.css"/>    <script type="text/javascript" src="ext/ext-base.js"></script>    <script type="text/javascript" src="ext/ext-all.js"></script>    <script type="text/javascript" src="qunit.js"></script>    <script type="text/javascript" src="ext/custom.js"></script>    <script type="text/javascript">        var store = new Ext.dx.PagingStore({            data:[1,2,3,4,5,6,7,8],            fields:[],            autoLoad:false        });        test("beforeload", function() {            equals(store.getCount(), 0, "count");            equals(store.getTotalCount(), 0, "totalCount");        });        asyncTest("load", function() {            expect(3);            ok(store.load({params:{start:0,limit:5}}), "success");            equals(store.getCount(),5,"count");            equals(store.getTotalCount(), 8, "totalCount");            start();        });        asyncTest("loadWithNoEnoughElements", function() {            expect(2);            ok(store.load({params:{start:0,limit:10}}), "success");            equals(store.getCount(),8,"count");            start();        });        asyncTest("loadOutOfElementBounds", function() {            expect(2);            ok(store.load({params:{start:10,limit:10}}), "success");            equals(store.getCount(),0,"count");            start();        });        asyncTest("autoLoad", function() {            expect(1, "unload");            var loaded = false;            var store = new Ext.dx.PagingStore({                fields:[], data:[1],autoLoad:true,                proxy:{                    on:function() {                    },                    relayEvents:function() {                    },                    request:function() {                        ok(true);                    }                }            });            start();        });        test("shouldRaiseExceptionWhenDataWasNull", function() {            try {                new Ext.ds.PagingStore({});                throw "Should raise exception when data was null";            } catch(expected) {                ok(true);            }        });    </script></head><body><h1 id="qunit-header">QUnit Test Suite</h1><h2 id="qunit-banner"></h2><div id="qunit-testrunner-toolbar"></div><h2 id="qunit-userAgent"></h2><ol id="qunit-tests"></ol><div id="qunit-fixture">test markup</div></body></html>

?

源码:

?Ext.dx = {};Ext.dx.PagingMemoryProxy = Ext.extend(Ext.data.MemoryProxy, {    doRequest:function(action, rs, params, reader, callback, scope, arg) {        params = params || {};        var data = this.readSubRecords(params);        var result;        try {            result = reader.readRecords(data);        } catch(e) {            this.fireEvent("loadexception", this, null, arg, e);            this.fireEvent('exception', this, 'response', action, arg, null, e);            callback.call(scope, null, arg, false);            return;        }        result.totalRecords = this.data.length;        callback.call(scope, result, arg, true);    },    readSubRecords:function(params) {        var start = params.start || 0;        var end = start + (params.limit || 0);        return this.data.slice(start, end);    }});Ext.dx.PagingStore = Ext.extend(Ext.data.Store, {    constructor:function(c) {        var data = c.data;        if (c.data)            delete c.data;        Ext.dx.PagingStore.superclass.constructor.call(this, Ext.applyIf(c, {            reader:new Ext.data.ArrayReader(c),            proxy:new Ext.dx.PagingMemoryProxy(data)        }));    }});
?

热点排行
Bad Request.