gecko/toolkit/components/places/tests/chrome/test_add_livemark.xul
2007-05-22 16:56:50 -07:00

94 lines
3.2 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet
href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<window title="Add Livemarks"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript"
src="chrome://mochikit/content/MochiKit/packed.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<body xmlns="http://www.w3.org/1999/xhtml" />
<script type="application/javascript">
<![CDATA[
// Test the asynchronous downloading of a feed to the livemarks service
SimpleTest.waitForExplicitFinish();
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
var iosvc = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
function uri(spec) {
return iosvc.newURI(spec, null, null);
}
var lmsvc = Cc["@mozilla.org/browser/livemark-service;2"].
getService(Ci.nsILivemarkService);
var bmsvc = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].
getService(Ci.nsINavBookmarksService);
var annosvc = Cc["@mozilla.org/browser/annotation-service;1"].
getService(Ci.nsIAnnotationService);
var gLivemarkId;
var observer =
{
QueryInterface: function(iid) {
if (iid.equals(Ci.nsINavBookmarkObserver) ||
iid.equals(Ci.nsIAnnotationObserver) ||
iid.equals(Ci.nsISupports))
return this;
throw Cr.NS_ERROR_NO_INTERFACE;
},
// nsINavBookmarkObserve
onBeginUpdateBatch: function(){},
onEndUpdateBatch: function(){},
onItemAdded: function(itemId, folder, index) {
if (bmsvc.getBookmarkURI(itemId).spec == "http://example.org/2003/12/13/atom03") {
is(folder, gLivemarkId, "Livemark added to correct folder");
this._lastBookmarkId = itemId;
bmsvc.removeObserver(this);
}
},
onItemRemoved: function(itemId, folder, index){},
onItemChanged: function(itemId, property, isAnnotationProperty, value){},
onItemVisited: function(itemId, aVisitID, time){},
onItemMoved: function(itemId, oldParent, oldIndex, newParent, newIndex){},
// nsIAnnotationObserver
onItemAnnotationSet: function(aItemId, aAnnotationName) {
if (aAnnotationName == "livemark/bookmarkFeedURI") {
ok("_lastBookmarkId" in this,
"Unexpected livemark/bookmarkFeedURI annotation set");
ok(this._lastBookmarkId == aItemId,
"livemark/bookmarkFeedURI annotation set on the wrong item");
annosvc.removeObserver(this);
SimpleTest.finish();
}
},
onItemAnnotationRemoved: function(aItemId, aAnnotationName) { },
onPageAnnotationSet: function(uri, name) { },
onPageAnnotationRemoved: function(uri, name) { }
};
var root = bmsvc.bookmarksRoot;
const FEEDSPEC = "http://localhost:8888/tests/toolkit/components/places/tests/chrome/sample_feed.atom";
gLivemarkId = lmsvc.createLivemarkFolderOnly(bmsvc, root, "foo",
uri("http:/localhost/"),
uri(FEEDSPEC), -1);
bmsvc.addObserver(observer, false);
annosvc.addObserver(observer, false);
lmsvc.reloadLivemarkFolder(gLivemarkId);
]]>
</script>
</window>