gecko/services/sync/tests/tps/test_history.js

168 lines
3.0 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/*
* The list of phases mapped to their corresponding profiles. The object
* here must be in strict JSON format, as it will get parsed by the Python
* testrunner (no single quotes, extra comma's, etc).
*/
EnableEngines(["history"]);
var phases = { "phase1": "profile1",
"phase2": "profile2" };
/*
* History asset lists: these define history entries that are used during
* the test
*/
// the initial list of history items to add to the browser
var history1 = [
{ uri: "http://www.google.com/",
title: "Google",
visits: [
{ type: 1,
date: 0
},
{ type: 2,
date: -1
}
]
},
{ uri: "http://www.cnn.com/",
title: "CNN",
visits: [
{ type: 1,
date: -1
},
{ type: 2,
date: -36
}
]
},
{ uri: "http://www.google.com/language_tools?hl=en",
title: "Language Tools",
visits: [
{ type: 1,
date: 0
},
{ type: 2,
date: -40
}
]
},
{ uri: "http://www.mozilla.com/",
title: "Mozilla",
visits: [
{ type: 1,
date: 0
},
{ type: 1,
date: -1
},
{ type: 1,
date: -20
},
{ type: 2,
date: -36
}
]
}
];
// a list of items to delete from the history
var history_to_delete = [
{ uri: "http://www.cnn.com/" },
{ begin: -24,
end: -1
},
{ host: "www.google.com" }
];
// a list which reflects items that should be in the history after
// the above items are deleted
var history2 = [
{ uri: "http://www.mozilla.com/",
title: "Mozilla",
visits: [
{ type: 1,
date: 0
},
{ type: 2,
date: -36
}
]
}
];
// a list which includes history entries that should not be present
// after deletion of the history_to_delete entries
var history_not = [
{ uri: "http://www.google.com/",
title: "Google",
visits: [
{ type: 1,
date: 0
},
{ type: 2,
date: -1
}
]
},
{ uri: "http://www.cnn.com/",
title: "CNN",
visits: [
{ type: 1,
date: -1
},
{ type: 2,
date: -36
}
]
},
{ uri: "http://www.google.com/language_tools?hl=en",
title: "Language Tools",
visits: [
{ type: 1,
date: 0
},
{ type: 2,
date: -40
}
]
},
{ uri: "http://www.mozilla.com/",
title: "Mozilla",
visits: [
{ type: 1,
date: -1
},
{ type: 1,
date: -20
}
]
}
];
/*
* Test phases
* Note: there is no test phase in which deleted history entries are
* synced to other clients. This functionality is not supported by
* Sync, see bug 446517.
*/
Phase('phase1', [
[History.add, history1],
[Sync],
]);
Phase('phase2', [
[Sync],
[History.verify, history1],
[History.delete, history_to_delete],
[History.verify, history2],
[History.verifyNot, history_not],
[Sync]
]);