|
|
- define(["sugar-web/bus", "sugar-web/env", "sugar-web/datastore"], function (bus, env, datastore) {
-
- 'use strict';
-
- var defaultTimeoutInterval = jasmine.getEnv().defaultTimeoutInterval;
-
- describe("datastore object", function () {
-
- beforeEach(function () {
- // FIXME: due to db initialization,
- // the very first save() call may take a while
- jasmine.getEnv().defaultTimeoutInterval = 10000;
- spyOn(env, 'isStandalone').andReturn(false);
- bus.listen();
- });
-
- afterEach(function () {
- jasmine.getEnv().defaultTimeoutInterval = defaultTimeoutInterval;
- bus.close();
- });
-
- it("should be able to set and get metadata", function () {
- var saved;
- var gotMetadata;
- var datastoreObject;
- var objectId;
- var testTitle = "hello";
-
- runs(function () {
- saved = false;
-
- datastoreObject = new datastore.DatastoreObject();
- datastoreObject.setMetadata({
- title: testTitle
- });
-
- datastoreObject.save(function () {
- saved = true;
- objectId = datastoreObject.objectId;
- });
- });
-
- waitsFor(function () {
- return saved;
- }, "should have saved the object");
-
- runs(function () {
- gotMetadata = false;
-
- datastoreObject = new datastore.DatastoreObject(objectId);
- datastoreObject.getMetadata(function (error, metadata) {
- expect(metadata.title).toEqual(testTitle);
- gotMetadata = true;
- });
- });
-
- waitsFor(function () {
- return gotMetadata;
- }, "should have got the object metadata");
- });
-
- it("should be able to save and load text", function () {
- var saved;
- var gotMetadata;
- var datastoreObject;
- var objectId;
- var testText = "hello";
-
- runs(function () {
- saved = false;
-
- datastoreObject = new datastore.DatastoreObject();
- datastoreObject.setDataAsText(testText);
-
- datastoreObject.save(function () {
- saved = true;
- objectId = datastoreObject.objectId;
- });
- });
-
- waitsFor(function () {
- return saved;
- }, "should have saved the object");
-
- runs(function () {
- gotMetadata = false;
-
- function onLoaded(error, metadata, text) {
- expect(text).toEqual(testText);
- gotMetadata = true;
- }
-
- datastoreObject = new datastore.DatastoreObject(objectId);
- datastoreObject.loadAsText(onLoaded);
- });
-
- waitsFor(function () {
- return gotMetadata;
- }, "should have got the object metadata");
- });
-
- });
-
- describe("datastore", function () {
-
- beforeEach(function () {
- // FIXME: due to db initialization,
- // the very first save() call may take a while
- jasmine.getEnv().defaultTimeoutInterval = 10000;
- spyOn(env, 'isStandalone').andReturn(false);
- bus.listen();
- });
-
- afterEach(function () {
- jasmine.getEnv().defaultTimeoutInterval = defaultTimeoutInterval;
- bus.close();
- });
-
- it("should be able to create an object", function () {
- var wasCreated;
-
- runs(function () {
- wasCreated = false;
-
- function onCreated(error, objectId) {
- expect(objectId).toEqual(jasmine.any(String));
- wasCreated = true;
- }
-
- datastore.create({}, onCreated);
- });
-
- waitsFor(function () {
- return wasCreated;
- }, "the object should be created");
- });
-
- it("should be able to set object metadata", function () {
- var metadataSet;
- var gotMetadata;
- var objectId;
- var testTitle = "hello";
-
- runs(function () {
- function onMetadataSet(error) {
- expect(error).toBeNull();
- metadataSet = true;
- }
-
- function onCreated(error, createdObjectId) {
- objectId = createdObjectId;
-
- var metadata = {
- title: testTitle
- };
- datastore.setMetadata(objectId, metadata, onMetadataSet);
- }
-
- metadataSet = false;
-
- datastore.create({}, onCreated);
- });
-
- waitsFor(function () {
- return metadataSet;
- }, "metadata should be set");
-
- runs(function () {
- function onGotMetadata(error, metadata) {
- expect(metadata.title).toEqual(testTitle);
- gotMetadata = true;
- }
-
- gotMetadata = false;
-
- datastore.getMetadata(objectId, onGotMetadata);
- });
-
- waitsFor(function () {
- return gotMetadata;
- }, "should have got object metadata");
- });
-
- it("should be able to get object metadata", function () {
- var gotMetadata = false;
- var testTitle = "hello";
-
- runs(function () {
- function onGotMetadata(error, metadata) {
- expect(metadata.title).toEqual(testTitle);
- gotMetadata = true;
- }
-
- function onCreated(error, objectId) {
- datastore.getMetadata(objectId, onGotMetadata);
- }
-
- datastore.create({
- title: testTitle
- }, onCreated);
- });
-
- waitsFor(function () {
- return gotMetadata;
- }, "should have got object metadata");
- });
-
- it("should be able to load an object", function () {
- var wasLoaded = false;
- var objectId = null;
- var inputStream = null;
- var objectData = null;
- var testData = new Uint8Array([1, 2, 3, 4]);
-
- runs(function () {
- function onStreamClose(error) {
- expect(objectData).toEqual(testData.buffer);
- wasLoaded = true;
- }
-
- function onStreamRead(error, data) {
- objectData = data;
- }
-
- function onLoaded(error, metadata, loadedInputStream) {
- inputStream = loadedInputStream;
- inputStream.read(8192, onStreamRead);
- inputStream.close(onStreamClose);
- }
-
- function onClosed(error) {
- datastore.load(objectId, onLoaded);
- }
-
- function onSaved(error, outputStream) {
- outputStream.write(testData);
- outputStream.close(onClosed);
- }
-
- function onCreated(error, createdObjectId) {
- objectId = createdObjectId;
- datastore.save(objectId, {}, onSaved);
- }
-
- datastore.create({}, onCreated);
- });
-
- waitsFor(function () {
- return wasLoaded;
- }, "the object should be loaded");
- });
- });
- });
|