/services/sync/tests/unit/test_bookmark_record.js

http://github.com/zpao/v8monkey · JavaScript · 42 lines · 32 code · 10 blank · 0 comment · 1 complexity · 94bcfe0ce392dee59d5fd6f3b8dd23ab MD5 · raw file

  1. Cu.import("resource://services-sync/record.js");
  2. Cu.import("resource://services-sync/engines/bookmarks.js");
  3. Cu.import("resource://services-sync/identity.js");
  4. Cu.import("resource://services-sync/log4moz.js");
  5. Cu.import("resource://services-sync/util.js");
  6. function prepareBookmarkItem(collection, id) {
  7. let b = new Bookmark(collection, id);
  8. b.cleartext.stuff = "my payload here";
  9. return b;
  10. }
  11. function run_test() {
  12. let keyBundle = ID.set("WeaveCryptoID", new SyncKeyBundle(null, "john@example.com"));
  13. keyBundle.keyStr = "abcdeabcdeabcdeabcdeabcdea";
  14. generateNewKeys();
  15. let log = Log4Moz.repository.getLogger("Test");
  16. Log4Moz.repository.rootLogger.addAppender(new Log4Moz.DumpAppender());
  17. log.info("Creating a record");
  18. let u = "http://localhost:8080/storage/bookmarks/foo";
  19. let placesItem = new PlacesItem("bookmarks", "foo", "bookmark");
  20. let bookmarkItem = prepareBookmarkItem("bookmarks", "foo");
  21. log.info("Checking getTypeObject");
  22. do_check_eq(placesItem.getTypeObject(placesItem.type), Bookmark);
  23. do_check_eq(bookmarkItem.getTypeObject(bookmarkItem.type), Bookmark);
  24. bookmarkItem.encrypt(keyBundle);
  25. log.info("Ciphertext is " + bookmarkItem.ciphertext);
  26. do_check_true(bookmarkItem.ciphertext != null);
  27. log.info("Decrypting the record");
  28. let payload = bookmarkItem.decrypt(keyBundle);
  29. do_check_eq(payload.stuff, "my payload here");
  30. do_check_eq(bookmarkItem.getTypeObject(bookmarkItem.type), Bookmark);
  31. do_check_neq(payload, bookmarkItem.payload); // wrap.data.payload is the encrypted one
  32. }