services/sync/tests/tps/test_sync.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /*
     5  * The list of phases mapped to their corresponding profiles.  The object
     6  * here must be in strict JSON format, as it will get parsed by the Python
     7  * testrunner (no single quotes, extra comma's, etc).
     8  */
    10 var phases = { "phase1": "profile1",
    11                "phase2": "profile2",
    12                "phase3": "profile1",
    13                "phase4": "profile2" };
    15 /*
    16  * Bookmark asset lists: these define bookmarks that are used during the test
    17  */
    19 // the initial list of bookmarks to be added to the browser
    20 var bookmarks_initial = {
    21   "menu": [
    22     { uri: "http://www.google.com",
    23       loadInSidebar: true,
    24       tags: ["google", "computers", "internet", "www"],
    25       changes: {
    26         title: "Google",
    27         loadInSidebar: false,
    28         tags: ["google", "computers", "misc"],
    29       }
    30     },
    31     { uri: "http://bugzilla.mozilla.org/show_bug.cgi?id=%s",
    32       title: "Bugzilla",
    33       keyword: "bz",
    34       changes: {
    35         keyword: "bugzilla" 
    36       }
    37     },
    38     { folder: "foldera" },
    39     { uri: "http://www.mozilla.com" },
    40     { separator: true },
    41     { folder: "folderb" },
    42   ],
    43   "menu/foldera": [
    44     { uri: "http://www.yahoo.com",
    45       title: "testing Yahoo",
    46       changes: {
    47         location: "menu/folderb"
    48       }
    49     },
    50     { uri: "http://www.cnn.com",
    51       description: "This is a description of the site a at www.cnn.com",
    52       changes: {
    53         uri: "http://money.cnn.com",
    54         description: "new description",
    55       }
    56     },
    57     { livemark: "Livemark1",
    58       feedUri: "http://rss.wunderground.com/blog/JeffMasters/rss.xml",
    59       siteUri: "http://www.wunderground.com/blog/JeffMasters/show.html",
    60       changes: {
    61         livemark: "LivemarkOne"
    62       }
    63     },
    64   ],
    65   "menu/folderb": [
    66     { uri: "http://www.apple.com",
    67       tags: ["apple", "mac"],
    68       changes: {
    69         uri: "http://www.apple.com/iphone/",
    70         title: "iPhone",
    71         location: "menu",
    72         position: "Google",
    73         tags: []
    74       }
    75     }
    76   ],
    77   toolbar: [
    78     { uri: "place:queryType=0&sort=8&maxResults=10&beginTimeRef=1&beginTime=0",
    79       title: "Visited Today"
    80     }
    81   ]
    82 };
    84 // the state of bookmarks after the first 'modify' action has been performed
    85 // on them
    86 var bookmarks_after_first_modify = {
    87   "menu": [
    88     { uri: "http://www.apple.com/iphone/",
    89       title: "iPhone",
    90       before: "Google",
    91       tags: []
    92     },
    93     { uri: "http://www.google.com",
    94       title: "Google",
    95       loadInSidebar: false,
    96       tags: [ "google", "computers", "misc"]
    97     },
    98     { uri: "http://bugzilla.mozilla.org/show_bug.cgi?id=%s",
    99       title: "Bugzilla",
   100       keyword: "bugzilla"
   101     },
   102     { folder: "foldera" },
   103     { uri: "http://www.mozilla.com" },
   104     { separator: true },
   105     { folder: "folderb",
   106       changes: {
   107         location: "menu/foldera",
   108         folder: "Folder B",
   109         description: "folder description"
   110       }
   111     }
   112   ],
   113   "menu/foldera": [
   114     { uri: "http://money.cnn.com",
   115       title: "http://www.cnn.com",
   116       description: "new description"
   117     },
   118     { livemark: "LivemarkOne",
   119       feedUri: "http://rss.wunderground.com/blog/JeffMasters/rss.xml",
   120       siteUri: "http://www.wunderground.com/blog/JeffMasters/show.html"
   121     }
   122   ],
   123   "menu/folderb": [
   124     { uri: "http://www.yahoo.com",
   125       title: "testing Yahoo"
   126     }
   127   ],
   128   "toolbar": [
   129     { uri: "place:queryType=0&sort=8&maxResults=10&beginTimeRef=1&beginTime=0",
   130       title: "Visited Today"
   131     }
   132   ]
   133 };
   135 // a list of bookmarks to delete during a 'delete' action
   136 var bookmarks_to_delete = {
   137   "menu": [
   138     { uri: "http://www.google.com",
   139       title: "Google",
   140       loadInSidebar: false,
   141       tags: [ "google", "computers", "misc" ]
   142     }
   143   ]
   144 };
   146 // the state of bookmarks after the second 'modify' action has been performed
   147 // on them
   148 var bookmarks_after_second_modify = {
   149   "menu": [
   150     { uri: "http://www.apple.com/iphone/",
   151       title: "iPhone"
   152     },
   153     { uri: "http://bugzilla.mozilla.org/show_bug.cgi?id=%s",
   154       title: "Bugzilla",
   155       keyword: "bugzilla"
   156     },
   157     { folder: "foldera" },
   158     { uri: "http://www.mozilla.com" },
   159     { separator: true },
   160   ],
   161   "menu/foldera": [
   162     { uri: "http://money.cnn.com",
   163       title: "http://www.cnn.com",
   164       description: "new description"
   165     },
   166     { livemark: "LivemarkOne",
   167       feedUri: "http://rss.wunderground.com/blog/JeffMasters/rss.xml",
   168       siteUri: "http://www.wunderground.com/blog/JeffMasters/show.html"
   169     },
   170     { folder: "Folder B",
   171       description: "folder description"
   172     }
   173   ],
   174   "menu/foldera/Folder B": [
   175     { uri: "http://www.yahoo.com",
   176       title: "testing Yahoo"
   177     }
   178   ]
   179 };
   181 // a list of bookmarks which should not be present after the last
   182 // 'delete' and 'modify' actions
   183 var bookmarks_absent = {
   184   "menu": [
   185     { uri: "http://www.google.com",
   186       title: "Google"
   187     },
   188     { folder: "folderb" },
   189     { folder: "Folder B" }
   190   ]
   191 };
   193 /*
   194  * History asset lists: these define history entries that are used during
   195  * the test
   196  */
   198 // the initial list of history items to add to the browser
   199 var history_initial = [
   200   { uri: "http://www.google.com/",
   201     title: "Google",
   202     visits: [
   203       { type: 1, date: 0 },
   204       { type: 2, date: -1 }
   205     ]
   206   },
   207   { uri: "http://www.cnn.com/",
   208     title: "CNN",
   209     visits: [
   210       { type: 1, date: -1 },
   211       { type: 2, date: -36 }
   212     ]
   213   },
   214   { uri: "http://www.google.com/language_tools?hl=en",
   215     title: "Language Tools",
   216     visits: [
   217       { type: 1, date: 0 },
   218       { type: 2, date: -40 }
   219     ]
   220   },
   221   { uri: "http://www.mozilla.com/",
   222     title: "Mozilla",
   223     visits: [
   224       { type: 1, date: 0 },
   225       { type: 1, date: -1 },
   226       { type: 1, date: -20 },
   227       { type: 2, date: -36 }
   228     ]
   229   }
   230 ];
   232 // a list of history entries to delete during a 'delete' action
   233 var history_to_delete = [
   234   { uri: "http://www.cnn.com/" },
   235   { begin: -24,
   236     end: -1 },
   237   { host: "www.google.com" }
   238 ];
   240 // the expected history entries after the first 'delete' action
   241 var history_after_delete = [
   242   { uri: "http://www.mozilla.com/",
   243     title: "Mozilla",
   244     visits: [
   245       { type: 1,
   246         date: 0
   247       },
   248       { type: 2,
   249         date: -36
   250       }
   251     ]
   252   }
   253 ];
   255 // history entries expected to not exist after a 'delete' action
   256 var history_absent = [
   257   { uri: "http://www.google.com/",
   258     title: "Google",
   259     visits: [
   260       { type: 1,
   261         date: 0
   262       },
   263       { type: 2,
   264         date: -1
   265       }
   266     ]
   267   },
   268   { uri: "http://www.cnn.com/",
   269     title: "CNN",
   270     visits: [
   271       { type: 1,
   272         date: -1
   273       },
   274       { type: 2,
   275         date: -36
   276       }
   277     ]
   278   },
   279   { uri: "http://www.google.com/language_tools?hl=en",
   280     title: "Language Tools",
   281     visits: [
   282       { type: 1,
   283         date: 0
   284       },
   285       { type: 2,
   286         date: -40
   287       }
   288     ]
   289   },
   290   { uri: "http://www.mozilla.com/",
   291     title: "Mozilla",
   292     visits: [
   293       { type: 1,
   294         date: -1
   295       },
   296       { type: 1,
   297         date: -20
   298       }
   299     ]
   300   }
   301 ];
   303 /*
   304  * Password asset lists: these define password entries that are used during
   305  * the test
   306  */
   308 // the initial list of passwords to add to the browser
   309 var passwords_initial = [
   310   { hostname: "http://www.example.com",
   311     submitURL: "http://login.example.com",
   312     username: "joe",
   313     password: "SeCrEt123",
   314     usernameField: "uname",
   315     passwordField: "pword",
   316     changes: {
   317       password: "zippity-do-dah"
   318     }
   319   },
   320   { hostname: "http://www.example.com",
   321     realm: "login",
   322     username: "joe",
   323     password: "secretlogin"
   324   }
   325 ];
   327 // the expected state of passwords after the first 'modify' action
   328 var passwords_after_first_modify = [
   329   { hostname: "http://www.example.com",
   330     submitURL: "http://login.example.com",
   331     username: "joe",
   332     password: "zippity-do-dah",
   333     usernameField: "uname",
   334     passwordField: "pword"
   335   },
   336   { hostname: "http://www.example.com",
   337     realm: "login",
   338     username: "joe",
   339     password: "secretlogin"
   340   }
   341 ];
   343 // a list of passwords to delete during a 'delete' action
   344 var passwords_to_delete = [
   345   { hostname: "http://www.example.com",
   346     realm: "login",
   347     username: "joe",
   348     password: "secretlogin"
   349   }
   350 ];
   352 // a list of passwords expected to be absent after 'delete' and 'modify'
   353 // actions
   354 var passwords_absent = [
   355   { hostname: "http://www.example.com",
   356     realm: "login",
   357     username: "joe",
   358     password: "secretlogin"
   359   }
   360 ];
   362 // the expected state of passwords after the seconds 'modify' action
   363 var passwords_after_second_modify = [
   364   { hostname: "http://www.example.com",
   365     submitURL: "http://login.example.com",
   366     username: "joe",
   367     password: "zippity-do-dah",
   368     usernameField: "uname",
   369     passwordField: "pword"
   370   }
   371 ];
   373 /*
   374  * Test phases
   375  */
   377 Phase('phase1', [
   378   [Bookmarks.add, bookmarks_initial],
   379   [Passwords.add, passwords_initial],
   380   [History.add, history_initial],
   381   [Sync],
   382 ]);
   384 Phase('phase2', [
   385   [Sync],
   386   [Bookmarks.verify, bookmarks_initial],
   387   [Passwords.verify, passwords_initial],
   388   [History.verify, history_initial],
   389   [Bookmarks.modify, bookmarks_initial],
   390   [Passwords.modify, passwords_initial],
   391   [History.delete, history_to_delete],
   392   [Bookmarks.verify, bookmarks_after_first_modify],
   393   [Passwords.verify, passwords_after_first_modify],
   394   [History.verify, history_after_delete],
   395   [History.verifyNot, history_absent],
   396   [Sync],
   397 ]);
   399 Phase('phase3', [
   400   [Sync],
   401   [Bookmarks.verify, bookmarks_after_first_modify],
   402   [Passwords.verify, passwords_after_first_modify],
   403   [History.verify, history_after_delete],
   404   [Bookmarks.modify, bookmarks_after_first_modify],
   405   [Passwords.modify, passwords_after_first_modify],
   406   [Bookmarks.delete, bookmarks_to_delete],
   407   [Passwords.delete, passwords_to_delete],
   408   [Bookmarks.verify, bookmarks_after_second_modify],
   409   [Passwords.verify, passwords_after_second_modify],
   410   [Bookmarks.verifyNot, bookmarks_absent],
   411   [Passwords.verifyNot, passwords_absent],
   412   [Sync],
   413 ]);
   415 Phase('phase4', [
   416   [Sync],
   417   [Bookmarks.verify, bookmarks_after_second_modify],
   418   [Passwords.verify, passwords_after_second_modify],
   419   [Bookmarks.verifyNot, bookmarks_absent],
   420   [Passwords.verifyNot, passwords_absent],
   421   [History.verifyNot, history_absent],
   422 ]);

mercurial