测试代码:
Html代码
<!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>
<!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>
源码:
Js代码
<SPAN style="WHITE-SPACE: normal"> <SPAN style="WHITE-SPACE: pre">Ext.dx = {};</SPAN></SPAN>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)
}));
}
});
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)
}));
}
});
qunit.rar (12.6 KB)
下载次数: 7
|