Auto-tools/Projects/CrossWeave/Test Format/Bookmarks: Difference between revisions

(Created page with 'A bookmark asset list is an object with one or more key-value pairs. Each key is the full path for the array of contents specified in the key's value. For example: "bookmark-…')
 
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Overview ==
A bookmark asset list is an object with one or more key-value pairs.  Each key is the full path for the array of contents specified in the key's value.  For example:
A bookmark asset list is an object with one or more key-value pairs.  Each key is the full path for the array of contents specified in the key's value.  For example:


  "bookmark-list": {
  bookmark-list:
   "menu": [
   menu:
     { "uri": "http://www.google.com" },
     * uri: http://www.google.com
     { "folder": "folder1" }
     * folder: folder1
   ],
   menu/folder1:
  "menu/folder1": [
     * uri: http://www.mozilla.com
     { "uri": "http://www.mozilla.com" }
  ]
}


This describes two bookmarks, one in the '''menu''' folder, and the other in the '''folder1''' subfolder of '''menu'''.
This describes two bookmarks, one in the "menu" folder, and the other in the "folder1" subfolder of "menu".


All bookmark paths must begin with one of the following:
All bookmark paths must begin with one of the following:
Line 20: Line 19:
* "unfiled": the unfiled bookmarks folder
* "unfiled": the unfiled bookmarks folder
* "places": the places root folder ("menu", "toolbar", and "unfiled" are all children of this)
* "places": the places root folder ("menu", "toolbar", and "unfiled" are all children of this)
Sub-folders are preceded with forward slashes, so "menu/folder1" denotes that "folder1" is a sub-folder of "menu". CrossWeave does not support forward slashes as part of a folder name.
== Folder Contents ==
The contents for a folder are given as an array of objects, representing various bookmark types, described below.
=== Bookmark Object ===
Valid properties are:
* '''uri''':  the bookmark uri. Required.
* '''title''':  the bookmark title.  Optional.  Defaults to the bookmark uri.
* '''loadInSidebar''':  true or false.  Optional.  Toggles the "load in sidebar" property.
* '''description''':  the bookmark description.  Optional.
* '''tags''':  an array of tags for the bookmark.  Optional.
* '''keyword''':  the keyword for the bookmark.  Optional.
* '''after''': the title of the bookmark item expected to be found AFTER this bookmark; used only in '''verify''' and '''modify''' actions.
* '''before''': the title of the bookmark item expected to be found BEFORE this bookmark; used only in '''verify''' and '''modify''' actions.
* '''changes''': an object containing new properties to be set for this bookmark when this asset list is used in a '''modify''' action.  The properties for this object include the '''uri, title, loadInSidebar, description, tags, keyword''' properties above, plus two additional properties:
** '''location''':  the full path of the folder that the bookmark should be moved to
** '''position''':  the title of the existing bookmark item, in the current folder, where this bookmark should be moved to (i.e., this bookmark would be inserted into the bookmark list at the position of the named bookmark, causing that bookmark to be positioned below the current one)
Example:
  uri: http://www.google.com
  loadInSidebar: true
  tags:
    * google
    * computers
    * internet
    * www
  title: Google
=== Livemark Object ===
Valid properties are:
* '''livemark''': the livemark name.  Required.
* '''siteURI''': the livemark's uri.  Optional.
* '''feedURI''': the livemark's feed uri.  Required.
* '''after''': the title of the bookmark item expected to be found AFTER this livemark; used only in '''verify''' and '''modify''' actions.
* '''before''': the title of the bookmark item expected to be found BEFORE this livemark; used only in '''verify''' and '''modify''' actions.
* '''changes''': an object containing new properties to be set for this livemark when this asset list is used in a '''modify''' action.  The properties for this object include the '''livemark, siteURI, feedURI''' properties above, plus two additional properties:
** '''location''':  the full path of the folder that the livemark should be moved to
** '''position''':  the title of the existing bookmark item, in the current folder, where this livemark should be moved to (i.e., this livemark would be inserted into the bookmark list at the position of the named bookmark, causing that bookmark to be positioned below the current one)
Example:
livemark: Livemark1
feedUri: http://rss.wunderground.com/blog/JeffMasters/rss.xml
siteUri: http://www.wunderground.com/blog/JeffMasters/show.html
=== Folder Object ===
Valid properties are:
* '''folder''': the folder's name.  Required.
* '''description''': the folder's description.  Optional.
* '''after''': the title of the bookmark item expected to be found AFTER this folder; used only in '''verify''' and '''modify''' actions.
* '''before''': the title of the bookmark item expected to be found BEFORE this folder; used only in '''verify''' and '''modify''' actions.
* '''changes''': an object containing new properties to be set for this folder when this asset list is used in a '''modify''' action.  The properties for this object include the '''folder, description''' properties above, plus two additional properties:
** '''location''':  the full path of the folder that this folder should be moved to
** '''position''':  the title of the existing bookmark item, in the current folder, where this folder should be moved to (i.e., this folder would be inserted into the bookmark list at the position of the named bookmark, causing that bookmark to be positioned below this folder)
Example:
folder: folderb
changes:
  location: menu/foldera
  folder: Folder B
  description: folder description
=== Separator Object ===
Valid properties are:
* '''separator: true''', always set for separators
* '''before''': the title of the bookmark item expected to be found BEFORE this separator; used only in '''verify''' and '''modify''' actions.
* '''changes''': an object containing new properties to be set for this separator when this asset list is used in a '''modify''' action.  The properties for this object are:
** '''location''':  the full path of the folder that this separator should be moved to
** '''position''':  the title of the existing bookmark item, in the current folder, where this separator should be moved to (i.e., this separator would be inserted into the bookmark list at the position of the named bookmark, causing that bookmark to be positioned below this separator)
Example:
separator: true
== Bookmark Lists and Phase Actions ==
This section describes how bookmark lists are processed during various phase actions.
=== add action ===
The bookmark items in the list are added to the end of their parent folder in the specified order.  That is, the first item is appended to its parent folder, then the second, and so forth.  '''after''' and '''before''' properties are ignored.
=== verify action ===
The bookmark items in the list are verified to be present.  Within each folder, the second item in the list is assumed to be immediately after the first item, and so forth.  If the second item in a given folder is not directly after the first item in that folder, it's an error.  '''after''' and '''before''' properties, if specified, are also used to verify an item's position.  However, because CrossWeave verifies that bookmark items appear in the order that they are given in the asset list, '''after''' and '''before''' are not very useful except in verifying the position of the first item in the list.
=== verify-not action ===
The bookmark items in the list are verified NOT to be present.
=== modify action ===
The '''changes''' properties of the bookmark items are applied, after the items have been verified to exist.  If a '''location''' property exists inside the '''changes''' object, it is applied before the '''position''' property.  If '''location''' is specified without '''position''', then the bookmark is moved to the end of the specified folder.  If '''position''' is specified without '''location''', then the bookmark is moved to the specified position within the current folder.
=== delete action ===
The bookmarks in this list are deleted from the browser.
== Examples ==
For more detailed examples, please see the [http://hg.mozilla.org/automation/crossweave/file/f35c4dd23dea/sync.test CrossWeave example test].
Confirmed users
1,905

edits