Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
652 lines
21 KiB
JavaScript
Executable file
652 lines
21 KiB
JavaScript
Executable file
/* Any copyright is dedicated to the Public Domain.
|
||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||
|
||
'use strict';
|
||
|
||
/* global
|
||
AdapterMock
|
||
*/
|
||
|
||
/* exported
|
||
SynctoServerFixture
|
||
*/
|
||
|
||
var SynctoServerFixture = (function() {
|
||
var syncEngineOptions = {
|
||
URL: 'http://localhost:8000/v1/',
|
||
assertion: 'test-assertion-mock',
|
||
// Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=959919#c13.
|
||
kB: 'fd5c747806c07ce0b9d69dcfea144663e630b65ec4963596a22f24910d7dd15d',
|
||
adapters: {
|
||
history: (typeof AdapterMock === 'undefined' ? null : AdapterMock())
|
||
}
|
||
};
|
||
|
||
// Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=959919#c13.
|
||
var xClientState = '6ae94683571c7a7c54dab4700aa3995f';
|
||
|
||
var metaGlobalPayloadWithHistoryEngine = JSON.stringify({
|
||
syncID: 'NOuEmrZxVWxl',
|
||
storageVersion: 5,
|
||
declined:[],
|
||
engines: {
|
||
clients: { version: 1, syncID: '-qRIYq3pRFaF' },
|
||
prefs: { version:2, syncID: 'J2d8YxLBQ68M' },
|
||
passwords: { version:1, syncID: 'y3sQX0uYGXwz' },
|
||
tabs: { version: 1, syncID: 'MGdVuWFjTRpP' },
|
||
bookmarks: { version: 2, syncID: 'OmUGbrBTvZbn' },
|
||
addons: { version: 1, syncID: '90lUL4MPuhpx' },
|
||
forms: { version:1, syncID: 'Q_mWdmGZtuX9' },
|
||
history: { version: 1, syncID: '2_MOTXJfjA9Q' }
|
||
}
|
||
});
|
||
|
||
var metaGlobalPayloadWithoutHistoryEngine = JSON.stringify({
|
||
syncID: 'NOuEmrZxVWxl',
|
||
storageVersion: 5,
|
||
declined:[],
|
||
engines: {
|
||
clients: { version: 1, syncID: '-qRIYq3pRFaF' },
|
||
prefs: { version:2, syncID: 'J2d8YxLBQ68M' },
|
||
passwords: { version:1, syncID: 'y3sQX0uYGXwz' },
|
||
tabs: { version: 1, syncID: 'MGdVuWFjTRpP' },
|
||
bookmarks: { version: 2, syncID: 'OmUGbrBTvZbn' },
|
||
addons: { version: 1, syncID: '90lUL4MPuhpx' },
|
||
forms: { version:1, syncID: 'Q_mWdmGZtuX9' }
|
||
}
|
||
});
|
||
|
||
var remoteData = {
|
||
meta: {
|
||
id: 'global',
|
||
last_modified: 1234567890123,
|
||
payload: metaGlobalPayloadWithHistoryEngine
|
||
},
|
||
crypto: {
|
||
id: 'keys',
|
||
last_modified: 1234567890123,
|
||
payload: JSON.stringify({
|
||
ciphertext: `PP5yNUYwJJoLcsL5o85i6RZfvanYDrwtChDD/LdKTZ8JOLubZ9DyRv3HMe\
|
||
tSkbhL3HLvVm/FJ1Z4F2Z6IKQCxAc5dNnLsBIUUxhOHLbT0x9/jfnqZ8fLtlbkogI3ZlNvbc8iUF1aX\
|
||
+boe0Pv43vM0VvzxrnJDYzZ2a6jm9nbzUn0ldV9sv6vuvGHE6dANnRkZ3wA/q0q8UvjdwpzXBixAw=\
|
||
=`,
|
||
IV: 'FmosM+XBNy81/9oEAgI4Uw==',
|
||
hmac: '01a816e4577c6cf3f97b66b4382d0a3e7e9178c75a3d38ed9ac8ad6397c2ecce'
|
||
})
|
||
},
|
||
history: {
|
||
id: '_9sCUbahs0ay',
|
||
last_modified: 1234567890123,
|
||
payload: JSON.stringify({
|
||
ciphertext: `o6aTLJdfhW4nz1hhnE2ZkvPb9N9lP6JEez+oufMGWIVAgQFaEMB3r/Oboc\
|
||
vRti2dwe7yo2qly9d8aILHuOTgerFZuC5Bu5b0KmvHnVBzLxcPcqF20mFY2iQIApEI82Cu2VfwZuX4t\
|
||
nCLMlxfllEzWvQPWai8e5OKmThdzKdHAmaS+sHBj5FjTe5mxuX4U1c8EJUS3a4fSV5NY0EolUkSuMLw\
|
||
9sXu++7Uiu8OJH/JNWis6getxKcE+J61iaHJO/raiPyYIB/tSi3yrIjb0FqLeG8tXCrrZ9VD/2AWPmJ\
|
||
5/6bpt80dSXgke4qvKePNoCYp`,
|
||
IV: 'pP/NMhj5fwREqes4I9H0tw==',
|
||
hmac: '97d16085c1bf347cb7530342ccf85647609be4a8f55d2b8fe409b1756240c06b'
|
||
})
|
||
},
|
||
'wrong-payload-meta': {
|
||
id: 'global',
|
||
last_modified: 1234567890123,
|
||
payload: 'whoopsie!'
|
||
},
|
||
'wrong-payload-crypto': {
|
||
id: 'keys',
|
||
last_modified: 1234567890123,
|
||
payload: 'whoopsie!'
|
||
},
|
||
'wrong-payload-history': {
|
||
id: '_9sCUbahs0ay',
|
||
last_modified: 1234567890123,
|
||
payload: 'whoopsie!'
|
||
},
|
||
'wrong-ciphertext': {
|
||
id: '_9sCUbahs0ay',
|
||
last_modified: 1234567890123,
|
||
payload: JSON.stringify({
|
||
ciphertext: 'deadbeef',
|
||
IV: 'kXL3hb11ltD+Jl0YFk+PlQ==',
|
||
hmac: 'cb727efe7a3f0307921cecbd1a97c03f06a4d75c42026089494d84fcf92dbff9'
|
||
})
|
||
},
|
||
'wrong-id': {
|
||
id: {},
|
||
last_modified: 1234567890123,
|
||
payload: JSON.stringify({
|
||
ciphertext: `o/VpkqMj1tlT8t2youwsS2FgvQeonoHxqjGsRTu1+4swfyBq/QsnKfgOOM\
|
||
mDIXZiPC3hOCNUlf/NtQiEe55hzJZEKLBshaLfXotai6KrprwrmykfiXnwn73n+nYNs8BXL5awDHoaJ\
|
||
ToyFgF4PYokl7mwN7YC2xFiPgwO7Z2u/8r5RfnPV9MoafqvlvUkW+Tqs+QHeHS/iuSA0P2h/j5ynt9v\
|
||
4xDWLVfEMce0KOKHQ5Qj7BmEPAieWP1trkkDmTdVi2euWrs+fuG4C6PgY4A2j2DbNLVIloqpDVkqM2f\
|
||
gh0YOM9L2NC/uiKEb1Ynr2Fos`,
|
||
IV: 'kXL3hb11ltD+Jl0YFk+PlQ==',
|
||
hmac: 'cb727efe7a3f0307921cecbd1a97c03f06a4d75c42026089494d84fcf92dbff9'
|
||
})
|
||
}
|
||
};
|
||
|
||
var record = {
|
||
'places': {
|
||
id: 'places',
|
||
sortindex: 1000000,
|
||
last_modified: 1444990319980,
|
||
payload: `{"ciphertext":"oDeFFF9Mhq2ASsACJpTOroCT8R9r7DHJjv0RJI4tI4/kc7tW\
|
||
TGrTMKCXBQu/3olgLKjbue4sUDHVmwlcwdMMbwis1Pt2FrChm1+kmmzKrndKsgDKqf0d2jfjSIeeO8Z\
|
||
fS0mSYFzQifI63khTftZr1fWkz0ajuwzlajXTKKcwYhruXaZE8YCoxu/cXoUtbKtgAxMCY6heNB1VwM\
|
||
QrWuXlkFWxOaMJZC9Qot93ef6xH84=","IV":"9nq13kP7b59dCRLLiCR8Mw==","hmac":"35133a2\
|
||
00238f6476f5b6305130cff76fdf47d66742ddffa88a8f0fefcb7d24b"}`
|
||
},
|
||
'unfiled': {
|
||
id: 'unfiled',
|
||
sortindex: 1000000,
|
||
last_modified: 1443799918500,
|
||
payload: `{"ciphertext":"+5oLXV7WdW9iadskJlISpQgOUAFABGC6BlUoJx/Lj/Ys4JkB\
|
||
T7Ga/9Ufv5ToPxsi8pDbk0Cy/neqV0g3Dj82xRqqADhaWTIbrNMAvDIE3navdtXafhxYKEcwRa8+nII\
|
||
uRc8si1c90cvdqCEKUIhhZUctqfNNJRUFbjhBMNEHQ0F6f02CL5RF2DyOt8Lg83Ui4P2CBiFkyIJRA9\
|
||
1B17K55P41w7Y4AUWUPCZHBIERzY0=","IV":"7otPN3W23riiDnXgSsxCfg==","hmac":"82d1f8e\
|
||
54c5d0ab09e31e6e7beaf45ca8d8ffb2d924614eafaf50732500408f0"}`
|
||
},
|
||
'-Z5mm8AxeIkq': {
|
||
id: '-Z5mm8AxeIkq',
|
||
sortindex: 175,
|
||
last_modified: 1443799918500,
|
||
payload: `{"ciphertext":"+gEPw/xy2oXxirZHU57m2J4Q7jhtiEZrxxjvO+6mqh+LWUVp\
|
||
Lj2sER7vFt8ioA3OlPWcBpUertzgWArZ4zLSrvOiMrDWX651R7Oi//+ksGGEBkOVHzU7NKldDTrQtO1\
|
||
slUaLVMCEto+KD9lQLbFBLo2r3yvB7wslOFDQqbp5cLn++My5bK2YML2bzVgyU2Ug0il6aN/SQrSKr+\
|
||
BAxMlg4V9vcJ+uJ/R0pdTSUx3/g3l8U1T6e4sqirOdsXMbckyMjG9scr36owBQqP6fIp97DCVQTRrhR\
|
||
nJhSk/v+9sSg5XKkDdx3ZjFfodNjHfmoafvdpDIAVPUlqSRV9WnPuFDVp2/j1OZ3hVac5GxIjwMnweE\
|
||
3+9S5oYdkjrtg0dA/YJ3ZXGyX21b53ZVACYV7E82Pal+pdD5iMxHn3zd4LYimwDBumX06pssJYHOhMx\
|
||
LIS6cG0U0HHsTuDFXR1FAWbMWpZeR1D/BOizW1KcOSacin4GV0zd2aDCDTk4xKE9Wd30q2o8HnLjNUU\
|
||
HO/St1osonSnj2hHx+YiHt4IGOA4481hu3NzXD1mwtutsSj/yvRrv/VCaMDVqY2MCTxXP5nfUEY2ohO\
|
||
nlJ7dOCAQgq8vjBROay+nscOmLEk8gNAygneFYBJA72YGy8HdLzoZcWcqoaed63m6TtqaxxWc+3CINr\
|
||
tZri9v/hK7qoVnYiVD8D8KVL","IV":"Uw4HT5/LP2B3Qq9goOai7g==","hmac":"52dd9f3b60870\
|
||
ac74b4d0b642dc34b7a872bf0a1bb2b410ba874373c68c88d5e"}`
|
||
},
|
||
'toolbar': {
|
||
id: 'toolbar',
|
||
sortindex: 1000000,
|
||
last_modified: 1444990337260,
|
||
payload: `{"ciphertext":"x8CVxJRSPsTsc5zhslndISQnnZvNkVu6g4HbVRlh7L966I4Z\
|
||
74bT0me1twfGN8Oowwm9nmg70wQQJwNIur+DYZEIXXCD9koq7LIsD/vj9c33gWYB6MucS/cI6cg7RMx\
|
||
NM7bieq01K8c10Sdl92MHH3WHgmqFo3AXXi44qpHnDC6mhMriAPdFIm4HdgeOURmmrykqMDUSatYVwE\
|
||
4LhXD61inIz0nXmygUJhVYNV707SwGpg/YfUCAyNUuUwlXBWjMVdFojPCHmgRy0vYRPnX7XiHE/Gw4W\
|
||
ViBuRG35yNHM1WeJIsMbNGwQIZ1w61mT4Y8Tdy/qTifj9ixz8B2VXbNaAtURgWvCDwR/P3PMkTNYXs=\
|
||
","IV":"wwGivoJN0JzlN43cphN8Vg==","hmac":"4b1520e74900c9cb3952778928fce0b09f853\
|
||
c1e8da78779ca9a61bae4e91ea0"}`
|
||
},
|
||
'5AiZMklaq0fL': {
|
||
id: '5AiZMklaq0fL',
|
||
sortindex: 1000000,
|
||
last_modified: 1444990361000,
|
||
payload: `{"ciphertext":"qr2Hq4V9bMi8ZrmTr19P5QziQj4CcDx6gI4qJuEMLgVmuci4\
|
||
Wcrz8uQiMtstyWFh0lK7WZlTLMdqwKnWbR/cqIR3tnfBrgP/IpCupnPgYcNBQR4ubtXBMO4+rRXz6kE\
|
||
pMlkDRuBJOXI3Uv4fmuy9fmCsyHjnXWLMoMPiS7ynlB82CVFLlTo4RGXs65+dK024xE5hnp0IE+sBHG\
|
||
hFtFWGyP2sJyY10c2f8SyGTdBY8o8=","IV":"S784aq1OWKzIR6QNY8Tqdg==","hmac":"623cd30\
|
||
5ffe2a1915e0a3d30551c36dd1db9cc7a1a4e91a8b4767451001cfa4e"}`
|
||
},
|
||
'6q8JaloClXcH': {
|
||
id: '6q8JaloClXcH',
|
||
sortindex: 1000000,
|
||
last_modified: 1444990406800,
|
||
payload: `{"ciphertext":"qn83DQj8GkLmg1g8j1V7dahpxX8ejxZ0c8s7l/Gqlr7ioqXG\
|
||
7r8C5YfMcPHpgLOJSFKIC2+a/t7mz391Bwmye4BPRPx1St1+ZRGDapP6X6IInm8kYdiXPeeAoC0zExw\
|
||
ZCaQBTWUI8x+l0sGJR3e2V84G6VIISkTxm2h6ywjcAYfNifnjyLIds1gxakGQ0gTYJ5gPXnQpQdBp4O\
|
||
ytRA1R721FWluxM3BYQ72UJFt8hMw=","IV":"UckfGiIKrwL0NBuJ4vpoBw==","hmac":"536e341\
|
||
32c8dcb980a0050597310f36a306d288288068d7782001649fa1f9609"}`
|
||
},
|
||
'msopyVa0ckP_': {
|
||
id: 'msopyVa0ckP_',
|
||
sortindex: 140,
|
||
last_modified: 1444990424710,
|
||
payload: `{"ciphertext":"/LclynYgBvPDqO0Ch2ylAZufLr+t42vYA37CilJMCxYnjCYY\
|
||
DzlMz1BOXooksM0PrZ+5vgLFZOl1sgjH4A/AS397dvn9EYugyNJgAm+oYAPfeDswXtp9xQ757oeC0zi\
|
||
AXHuq55bT3ClCv/yCWcK4HmL0l9MEePmXxOcR/QlBMq+Qn0iDNvUl9rPTeJw70G6MgJbSHscz9GXRqs\
|
||
Y/34BfxYV+aDdOGx2Wp877hK+EgrWes+yFUt+TjsuR8xiJk+SwASggEfw4GMDe4bo5EG2uDQTQCUww5\
|
||
qh32hg6OmE+DIj1wEBSCjw6yf4Yni32tn8vB1c4bo2xzV4KOXN8qfRFHeYCtKebdCNLHk7NwxEwDYM=\
|
||
","IV":"kbyuFrOfffGftlLAD/4Skg==","hmac":"d1ae13411f3577c6e62b8670b4b8a40365fa4\
|
||
7598368f141276c38936088fce3"}`
|
||
},
|
||
'AGyc2XZiNuVL': {
|
||
id: 'AGyc2XZiNuVL',
|
||
sortindex: 140,
|
||
last_modified: 1444990424710,
|
||
payload: `{"ciphertext":"UHL8oLNqhrxmxP3w/LiOUDe3SpuwwA4AbqIYX/faT5XaaWN\
|
||
Dyfw8ZhxuKaQfLyYa+mkdQRfYckR7eyl9/S352vrEU/GdR9kQ+y6tyyrYUfKHbPAZLHuRrdu8IPcVt+\
|
||
8SMn1Lao9fKAoutHM/oSqlQV9d1ZPtxcIJcCgnJmTR1nq//P5mj9OwGbXwKAh8JboS8wbS42ryQ/Llh\
|
||
oXf4HarDnePZsvLjNOmF0KH+VvHBfszTQDFoMPqgiDhnPjJunNU2EXI+WclfCjyUP6BhU5dqfUfWq1H\
|
||
qj4y6BV7Ajav8nyn7U7UvM8q3AnaEQSFM90nJeVx/e0+0EC7h1mZEuXhirRWFpReGxYYJ0lpDQ6OhPc\
|
||
=","IV":"xJ3PE16G3cX2Y20YPBTlog==","hmac":"f0cc1a9b065ad3dd7856c95cdd63d8e48904\
|
||
3f5dfa279b34afb99c9aaf4cf08f"}`
|
||
}
|
||
};
|
||
|
||
var bookmarksEntriesDec = {
|
||
'places': {
|
||
id: 'places',
|
||
type: 'folder',
|
||
title: '',
|
||
description: null,
|
||
children: ['toolbar_____', 'unfiled_____'],
|
||
parentid: '9sS1iwhx4w0q'
|
||
},
|
||
'unfiled': {
|
||
id: 'unfiled',
|
||
type: 'folder',
|
||
parentName: '',
|
||
title: 'Unsorted Bookmarks',
|
||
description: null,
|
||
children: ['-Z5mm8AxeIkq'],
|
||
parentid: 'places'
|
||
},
|
||
'-Z5mm8AxeIkq': {
|
||
id: '-Z5mm8AxeIkq',
|
||
type: 'bookmark',
|
||
title: 'HiNet首頁 -中華電信HiNet網路服務入口',
|
||
parentName: 'Unsorted Bookmarks',
|
||
bmkUri: 'http://www.hinet.net/',
|
||
tags: [],
|
||
keyword: null,
|
||
description: `中華電信HiNet網路服務入口,台灣最大ISP,提供寬頻上網,光世代(光纖\
|
||
)、ADSL服務,及信箱、新聞、hichannel、Xuite等生活娛樂資訊。並延伸至企業、政府、資安、雲\
|
||
端網絡應用,是您上網的第一站。`,
|
||
loadInSidebar: false,
|
||
parentid: 'unfiled'
|
||
},
|
||
'toolbar': {
|
||
id: 'toolbar',
|
||
type: 'folder',
|
||
parentName: '',
|
||
title: 'Bookmarks Toolbar',
|
||
description: `Add bookmarks to this folder to see them displayed on the B\
|
||
ookmarks Toolbar`,
|
||
children: [
|
||
'QH1IawO-JKtz',
|
||
'olmlydfUhcP7',
|
||
'5AiZMklaq0fL',
|
||
'6q8JaloClXcH'
|
||
],
|
||
parentid: 'places'
|
||
},
|
||
'5AiZMklaq0fL': {
|
||
id: '5AiZMklaq0fL',
|
||
type: 'folder',
|
||
parentName: 'Bookmarks Toolbar',
|
||
title: 'folder toolbar 1',
|
||
description: null,
|
||
children: ['msopyVa0ckP_'],
|
||
parentid: 'toolbar'
|
||
},
|
||
'6q8JaloClXcH': {
|
||
id: '6q8JaloClXcH',
|
||
type: 'folder',
|
||
parentName: 'Bookmarks Toolbar',
|
||
title: 'folder toolbar 2',
|
||
description: null,
|
||
children: ['AGyc2XZiNuVL'],
|
||
parentid: 'toolbar'
|
||
},
|
||
'msopyVa0ckP_': {
|
||
id: 'msopyVa0ckP_',
|
||
type: 'bookmark',
|
||
title: 'Redecentralize in folder toolbar 1',
|
||
parentName: 'folder toolbar 1',
|
||
bmkUri: 'https://redecentralize.org/',
|
||
tags: ['nicer'],
|
||
keyword: 'cooler',
|
||
description: 'yeah',
|
||
loadInSidebar: false,
|
||
parentid: '5AiZMklaq0fL'
|
||
},
|
||
'AGyc2XZiNuVL': {
|
||
id:'AGyc2XZiNuVL',
|
||
type: 'bookmark',
|
||
title: 'Redecentralize in folder toolbar 2',
|
||
parentName: 'folder toolbar 2',
|
||
bmkUri: 'https://redecentralize.org/',
|
||
tags: ['nicer'],
|
||
keyword: 'cooler',
|
||
description: 'yeaher',
|
||
loadInSidebar: true,
|
||
parentid: '6q8JaloClXcH'
|
||
}
|
||
};
|
||
var bookmarksExpectedDataStore = {
|
||
'https://redecentralize.org/': {
|
||
id: 'https://redecentralize.org/',
|
||
url: 'https://redecentralize.org/',
|
||
name: 'Redecentralize in folder toolbar 2',
|
||
type: 'url',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
msopyVa0ckP_: {
|
||
id: 'msopyVa0ckP_',
|
||
type: 'bookmark',
|
||
title: 'Redecentralize in folder toolbar 1',
|
||
parentName: 'folder toolbar 1',
|
||
bmkUri: 'https://redecentralize.org/',
|
||
tags: [ 'nicer' ],
|
||
keyword: 'cooler',
|
||
description: 'yeah',
|
||
loadInSidebar: false,
|
||
parentid: '5AiZMklaq0fL',
|
||
timestamp: 1444990424710
|
||
},
|
||
AGyc2XZiNuVL: {
|
||
id: 'AGyc2XZiNuVL',
|
||
type: 'bookmark',
|
||
title: 'Redecentralize in folder toolbar 2',
|
||
parentName: 'folder toolbar 2',
|
||
bmkUri: 'https://redecentralize.org/',
|
||
tags: [ 'nicer' ],
|
||
keyword: 'cooler',
|
||
description: 'yeaher',
|
||
loadInSidebar: true,
|
||
parentid: '6q8JaloClXcH',
|
||
timestamp: 1444990424710
|
||
}
|
||
}
|
||
},
|
||
'folder|6q8JaloClXcH': {
|
||
id: 'folder|6q8JaloClXcH',
|
||
name: 'folder toolbar 2',
|
||
type: 'others',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
'6q8JaloClXcH': {
|
||
id: '6q8JaloClXcH',
|
||
type: 'folder',
|
||
parentName: 'Bookmarks Toolbar',
|
||
title: 'folder toolbar 2',
|
||
description: null,
|
||
children: [ 'AGyc2XZiNuVL' ],
|
||
parentid: 'toolbar',
|
||
timestamp: 1444990406800
|
||
}
|
||
}
|
||
},
|
||
'folder|5AiZMklaq0fL': {
|
||
id: 'folder|5AiZMklaq0fL',
|
||
name: 'folder toolbar 1',
|
||
type: 'others',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
'5AiZMklaq0fL': {
|
||
id: '5AiZMklaq0fL',
|
||
type: 'folder',
|
||
parentName: 'Bookmarks Toolbar',
|
||
title: 'folder toolbar 1',
|
||
description: null,
|
||
children: [ 'msopyVa0ckP_' ],
|
||
parentid: 'toolbar',
|
||
timestamp: 1444990361000
|
||
}
|
||
}
|
||
},
|
||
'folder|toolbar': {
|
||
id: 'folder|toolbar',
|
||
name: 'Bookmarks Toolbar',
|
||
type: 'others',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
toolbar: {
|
||
id: 'toolbar',
|
||
type: 'folder',
|
||
parentName: '',
|
||
title: 'Bookmarks Toolbar',
|
||
description: `Add bookmarks to this folder to see them disp\
|
||
layed on the Bookmarks Toolbar`,
|
||
children: [
|
||
'QH1IawO-JKtz',
|
||
'olmlydfUhcP7',
|
||
'5AiZMklaq0fL',
|
||
'6q8JaloClXcH'
|
||
],
|
||
parentid: 'places',
|
||
timestamp: 1444990337260
|
||
}
|
||
}
|
||
},
|
||
'folder|places': {
|
||
id: 'folder|places',
|
||
name: '',
|
||
type: 'others',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
places: {
|
||
id: 'places',
|
||
type: 'folder',
|
||
title: '',
|
||
description: null,
|
||
children: [
|
||
'menu________',
|
||
'toolbar_____',
|
||
'tags________',
|
||
'unfiled_____',
|
||
'PYeSTK7_j6uu'
|
||
],
|
||
parentid: '9sS1iwhx4w0q',
|
||
timestamp: 1444990319980
|
||
}
|
||
}
|
||
},
|
||
'folder|unfiled': {
|
||
id: 'folder|unfiled',
|
||
name: 'Unsorted Bookmarks',
|
||
type: 'others',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
unfiled: {
|
||
id: 'unfiled',
|
||
type: 'folder',
|
||
parentName: '',
|
||
title: 'Unsorted Bookmarks',
|
||
description: null,
|
||
children: [
|
||
'HfLLCKqFA18a',
|
||
'-Z5mm8AxeIkq',
|
||
'z-G0UXZVu9o1'
|
||
],
|
||
parentid: 'places',
|
||
timestamp: 1443799918500
|
||
}
|
||
}
|
||
},
|
||
'http://www.hinet.net/': {
|
||
id: 'http://www.hinet.net/',
|
||
url: 'http://www.hinet.net/',
|
||
name: 'HiNet首頁 -中華電信HiNet網路服務入口',
|
||
type: 'url',
|
||
iconable: false,
|
||
icon: '',
|
||
createdLocally: false,
|
||
fxsyncRecords: {
|
||
'-Z5mm8AxeIkq': {
|
||
id: '-Z5mm8AxeIkq',
|
||
type: 'bookmark',
|
||
title: 'HiNet首頁 -中華電信HiNet網路服務入口',
|
||
parentName: 'Unsorted Bookmarks',
|
||
bmkUri: 'http://www.hinet.net/',
|
||
tags: [],
|
||
keyword: null,
|
||
description: `中華電信HiNet網路服務入口,台灣最大ISP,提供寬頻上\
|
||
網,光世代(光纖)、ADSL服務,及信箱、新聞、hichannel、Xuite等生活娛樂資訊。並延伸至企業\
|
||
、政府、資安、雲端網絡應用,是您上網的第一站。`,
|
||
loadInSidebar: false,
|
||
parentid: 'unfiled',
|
||
timestamp: 1443799918500
|
||
}
|
||
}
|
||
}
|
||
};
|
||
// Key name is too long for one line of code:
|
||
bookmarksExpectedDataStore[`https://developer.mozilla.org/en-US/docs/Web/Java\
|
||
Script/Reference/Global_Objects/Object/proto`] = {
|
||
url: `https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glo\
|
||
bal_Objects/Object/proto`,
|
||
title: 'Object.prototype.__proto__ € - JavaScript | MDN',
|
||
visits: [ 1439366063808 ],
|
||
fxsyncId: '_9sCUbahs0ay',
|
||
createdLocally: false
|
||
};
|
||
var bookmarksExpectedAsyncStorage = {
|
||
'518fef27c6bbc0220aab0f00b1a37308::collections::bookmarks::revisionid':
|
||
'{new-revision-id}',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::msopyVa0ckP_':
|
||
'https://redecentralize.org/',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::AGyc2XZiNuVL':
|
||
'https://redecentralize.org/',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::6q8JaloClXcH':
|
||
'folder|6q8JaloClXcH',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::5AiZMklaq0fL':
|
||
'folder|5AiZMklaq0fL',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::toolbar':
|
||
'folder|toolbar',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::places':
|
||
'folder|places',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::unfiled':
|
||
'folder|unfiled',
|
||
'518fef27c6bbc0220aab0f00b1a37308::synctoid::bookmarks::-Z5mm8AxeIkq':
|
||
'http://www.hinet.net/',
|
||
'518fef27c6bbc0220aab0f00b1a37308::collections::bookmarks::mtime':
|
||
1444990424710
|
||
};
|
||
|
||
var bookmarksRecords = [];
|
||
for (var i in record) {
|
||
bookmarksRecords.push(record[i]);
|
||
}
|
||
|
||
var responses = {};
|
||
responses.unreachable = {
|
||
status: 0,
|
||
headers: { get(header) {} },
|
||
text() {}
|
||
};
|
||
responses['http://example.com/v1/'] = {
|
||
status: 200,
|
||
statusText: 'OK',
|
||
headers: { get(header) {} },
|
||
text() { return 'bogus'; }
|
||
};
|
||
responses['https://syncto.dev.mozaws.net/v1/'] = {
|
||
status: 200,
|
||
headers: { get(header) {} },
|
||
text() {
|
||
return JSON.stringify({
|
||
url: 'https://syncto.dev.mozaws.net/v1/',
|
||
documentation: 'https://syncto.readthedocs.org/',
|
||
version: '1.0.0',
|
||
settings: {
|
||
'syncto.batch_max_requests': 25
|
||
},
|
||
hello: 'syncto'
|
||
});
|
||
}
|
||
};
|
||
responses[`https://syncto.dev.mozaws.net/v1/buckets/518fef27c6bbc0220aab0f00b\
|
||
1a37308/collections/meta/records`] = {
|
||
status: 200,
|
||
statusText: 'OK',
|
||
headers: { get(header) {} },
|
||
text() {
|
||
return JSON.stringify({ data: [ remoteData.meta ] });
|
||
}
|
||
};
|
||
responses[`https://syncto.dev.mozaws.net/v1/buckets/518fef27c6bbc0220aab0f00b\
|
||
1a37308/collections/crypto/records`] = {
|
||
status: 200,
|
||
statusText: 'OK',
|
||
headers: { get(header) {} },
|
||
text() {
|
||
return JSON.stringify({ data: [ remoteData.crypto ] });
|
||
}
|
||
};
|
||
responses[`https://syncto.dev.mozaws.net/v1/buckets/518fef27c6bbc0220aab0f00b\
|
||
1a37308/collections/history/records`] = {
|
||
status: 200,
|
||
statusText: 'OK',
|
||
headers: { get(header) {} },
|
||
text() {
|
||
return JSON.stringify({ data: [ remoteData.history ] });
|
||
}
|
||
};
|
||
responses[`https://syncto.dev.mozaws.net/v1/buckets/518fef27c6bbc0220aab0f00b\
|
||
1a37308/collections/bookmarks/records`] = {
|
||
status: 200,
|
||
statusText: 'OK',
|
||
headers: { get(header) {} },
|
||
text() {
|
||
return JSON.stringify({ data: bookmarksRecords });
|
||
}
|
||
};
|
||
|
||
var historyEntryDec = {
|
||
payload: {
|
||
id: '_9sCUbahs0ay',
|
||
histUri: `https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen\
|
||
ce/Global_Objects/Object/proto`,
|
||
title: 'Object.prototype.__proto__ - JavaScript | MDN',
|
||
visits:[ { date: 1439366063808983, type:1 } ]
|
||
},
|
||
collectionName: 'history'
|
||
};
|
||
|
||
function fetchArgsExpected(collectionNames) {
|
||
var ret = [
|
||
[
|
||
'https://syncto.dev.mozaws.net/v1/',
|
||
{
|
||
headers: {
|
||
Accept: 'application/json',
|
||
'Content-Type': 'application/json'
|
||
},
|
||
mode: undefined
|
||
}
|
||
]
|
||
];
|
||
function collReq(collName) {
|
||
return [ `https://syncto.dev.mozaws.net/v1/buckets/518fef27c6bbc0220aab0f\
|
||
00b1a37308/collections/${collName}/records`,
|
||
{
|
||
headers: {
|
||
Accept: 'application/json',
|
||
'Content-Type': 'application/json',
|
||
Authorization: 'BrowserID assertion'
|
||
},
|
||
mode: undefined
|
||
}
|
||
];
|
||
}
|
||
collectionNames.forEach(collectionName => {
|
||
ret.push(collReq(collectionName));
|
||
});
|
||
return ret;
|
||
}
|
||
|
||
return {
|
||
syncEngineOptions,
|
||
xClientState,
|
||
remoteData,
|
||
responses,
|
||
historyEntryDec,
|
||
bookmarksEntriesDec,
|
||
bookmarksExpectedDataStore,
|
||
bookmarksExpectedAsyncStorage,
|
||
fetchArgsExpected,
|
||
metaGlobalPayloadWithHistoryEngine,
|
||
metaGlobalPayloadWithoutHistoryEngine
|
||
};
|
||
})();
|