|
|
|
|
|
|
|
|
casper.get_list_items = function () {
|
|
|
return this.evaluate(function () {
|
|
|
return $.makeArray($('.item_link').map(function () {
|
|
|
return {
|
|
|
link: $(this).attr('href'),
|
|
|
label: $(this).find('.item_name').text()
|
|
|
};
|
|
|
}));
|
|
|
});
|
|
|
};
|
|
|
|
|
|
casper.test_items = function (baseUrl, visited) {
|
|
|
visited = visited || {};
|
|
|
casper.then(function () {
|
|
|
var items = casper.get_list_items();
|
|
|
casper.each(items, function (self, item) {
|
|
|
if (item.link.match(/^\/tree\//)) {
|
|
|
var followed_url = baseUrl+item.link;
|
|
|
if (!visited[followed_url]) {
|
|
|
visited[followed_url] = true;
|
|
|
casper.thenOpen(followed_url, function () {
|
|
|
this.waitFor(this.page_loaded);
|
|
|
casper.wait_for_dashboard();
|
|
|
// getCurrentUrl is with host, and url-decoded,
|
|
|
// but item.link is without host, and url-encoded
|
|
|
var expected = baseUrl + decodeURIComponent(item.link);
|
|
|
this.test.assertEquals(this.getCurrentUrl(), expected, 'Testing dashboard link: ' + expected);
|
|
|
casper.test_items(baseUrl, visited);
|
|
|
this.back();
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
|
|
|
casper.dashboard_test(function () {
|
|
|
baseUrl = this.get_notebook_server();
|
|
|
casper.test_items(baseUrl);
|
|
|
});
|
|
|
|
|
|
|