datasource.html revision 350839d3f8c71a522972265f77a8b5a3fbf6c82f
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill<script type="text/javascript" src="/build/yui/yui.js"></script>
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill<script type="text/javascript" src="/build/datasource/datasource-debug.js"></script>
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill<p><input type="button" value="Run Tests" id="btnRun" disabled="true" /></p>
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill //filter: "debug",
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill logInclude:{"TestRunner":true,"datasource":true},
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill useConsole: true
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill }).use("dump", "test", "console", "io-base", "cache", "base", "plugin", "json", "datatype", "dataschema", "datasource", function(Y) {
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill OBJECTASSERT = Y.ObjectAssert,
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill BTNRUN = Y.get("#btnRun"),
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill WAITTIMEOUT = 5000; // On a slow connection set to 5000
2b6389efff8da018d426952e20428e7e60d568a3Bryan Cantrill // Set up the page
BTNRUN.set("disabled", false);
Y.on("click", function() {
var myConsole = new Y.Console().render();
var testClass = new Y.Test.Case({
var ds = new Y.DataSource.Local();
var ds = new Y.DataSource.IO();
var testLocal = new Y.Test.Case({
name: "DataSource.Local Tests",
var ds = new Y.DataSource.Local({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
Y.Mock.verify(handler);
var ds = new Y.DataSource.Local({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest("a", "callback");
Y.Mock.verify(handler);
var ds = new Y.DataSource.Local({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.set("source", undefined);
ds.sendRequest("a", "callback");
var testIO = new Y.Test.Case({
name: "DataSource.IO Tests",
var ds = new Y.DataSource.IO({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
OBJECTASSERT.ownsKeys({tId:null,request:null,data:null,response:null,callback:null}, e, "Expected all properties.");
ds.sendRequest(null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
var ds = new Y.DataSource.IO({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
OBJECTASSERT.ownsKeys({tId:null,request:null,data:null,response:null,callback:null}, e, "Expected all properties.");
ds.sendRequest(null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
var ds = new Y.DataSource.IO({
resultListLocator: "ResultSet.Result",
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, "callback");
var ds = new Y.DataSource.IO({
resultListLocator: "ResultSet.Result",
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.set("source", "foo");
ds.sendRequest("a", "callback");
var testGet = new Y.Test.Case({
name: "DataSource.Get Tests",
var ds = new Y.DataSource.Get({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ASSERT.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
OBJECTASSERT.ownsKeys({tId:null,request:null,data:null,response:null,callback:null}, e, "Expected all properties.");
success: handler.handleSuccess,
ASSERT.fail("Get failure case.");
var ds = new Y.DataSource.Get({
resultListLocator: "query.results.result",
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ASSERT.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ASSERT.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ASSERT.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
testGetError: (Y.UA.gecko) ? function() {
var ds = new Y.DataSource.Get({
resultListLocator: "query.results.result",
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.set("source", "foo");
ds.sendRequest("a", "callback");
var testFunction = new Y.Test.Case({
name: "DataSource.Function Tests",
var ds = new Y.DataSource.Function({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
OBJECTASSERT.ownsKeys({tId:null,request:null,data:null,response:null,callback:null}, e, "Expected all properties.");
ds.sendRequest("foo", {
success: handler.handleSuccess,
ASSERT.fail("Function failure case.");
var ds = new Y.DataSource.Function({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest("foo", "callback");
var ds = new Y.DataSource.Function({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest("a", "callback");
var testDataSchemaPlugin = new Y.Test.Case({
var ds = new Y.DataSource.IO({
resultListLocator: "ResultSet.Result",
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, {
failure: Y.bind(function(e) {
ASSERT.fail("IO failure case.");
var ds = new Y.DataSource.IO({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, {
failure: Y.bind(function(e) {
ASSERT.fail("IO failure case.");
var ds = new Y.DataSource.Local({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, {
failure: Y.bind(function(e) {
ASSERT.fail("Local failure case.");
var ds = new Y.DataSource.Local({
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value(function(e){
ds.sendRequest(null, {
failure: Y.bind(function(e) {
ASSERT.fail("Local failure case.");
var testCaching = new Y.Test.Case({
var ds = new Y.DataSource.Local();
var ds = new Y.DataSource.Local();
var ds = new Y.DataSource.Local();
ds.cache.set("max", 5);
var ds = new Y.DataSource.Local({
ds.sendRequest("a");
ds.sendRequest("b");
ds.sendRequest("c");
ds.on("data", function(e) {
ASSERT.fail("Entry should be cached -- 'data' event is unexpected");
ds.sendRequest("a");
ds.sendRequest("b");
ds.sendRequest("c");
var ds = new Y.DataSource.Local({
ds.sendRequest("a");
ds.cache.on("retrieve", function(e) {
ASSERT.fail("Cache is unset -- 'retrieve' event is unexpected");
ds.unplug("cache");
ds.sendRequest("a");
var testPolling = new Y.Test.Case({
var ds = new Y.DataSource.Local();
ds = new Y.DataSource.IO();
var ds = new Y.DataSource.Local();
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value.Any],
var id = ds.setInterval(500, null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
ASSERT.isNumber(id, "Expected interval id.");
this.wait(function(){
ds.clearInterval(id);
this.wait(function(){
Y.Mock.verify(handler);
var ds = new Y.DataSource.Local();
var handler = Y.Mock();
Y.Mock.expect(handler,{
args: [Y.Mock.Value.Any],
ds.setInterval(500, null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
ds.setInterval(500, null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
ds.setInterval(500, null, {
success: handler.handleSuccess,
ASSERT.fail("IO failure case.");
this.wait(function(){
this.wait(function(){
Y.Mock.verify(handler);
Y.Test.Runner.add(testClass);
Y.Test.Runner.add(testLocal);
Y.Test.Runner.add(testIO);
Y.Test.Runner.add(testGet);
Y.Test.Runner.add(testFunction);
Y.Test.Runner.add(testDataSchemaPlugin);
Y.Test.Runner.add(testCaching);
Y.Test.Runner.add(testPolling);