Benutzer:Schnark/js/browsertest.js/watchlist++.js
aus Wikipedia, der freien Enzyklopädie
< Benutzer:Schnark | js | browsertest.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/*global mediaWiki*/
(function (test) {
"use strict";
test('Beobachtungsliste++', function (S) {
S.load('Spezial:Letzte Änderungen', {hidebots: 1});
S.wait();
S.assert('!!$(".mw-changeslist-line-not-watched .mw-title a").length', 'Änderungen an nicht beobachteten Seiten');
S.exec('mw.libs.browsertest.data.title = $(".mw-changeslist-line-not-watched .mw-title a").first().text();');
S.exec('mw.libs.browsertest.data.titleWithoutNS = mw.libs.browsertest.data.title.replace(/.*?:/, "");'); //FIXME nur NR
S.exec('mw.libs.browsertest.data.done = false;' +
'mw.loader.using("mediawiki.api").then(function () {' +
'(new mw.Api()).watch(mw.libs.browsertest.data.title).then(function () {' +
'$.post(mw.util.wikiScript("api"), {' +
'action: "setnotificationtimestamp",' +
'timestamp: "2000-01-01T00:00:00Z",' +
'titles: mw.libs.browsertest.data.title,' +
'token: mw.user.tokens.get("csrfToken"),' +
'format: "json",' +
'formatversion: 2' +
'}).then(function () {' +
'mw.libs.browsertest.data.done = true;' +
'});' +
'});' +
'});'
);
S.waitFor('mw.libs.browsertest.data.done', 7000, 'Seite beobachtet');
S.load('Spezial:Watchlist++');
S.wait();
S.waitFor('$("#rules-add").length > 0', 5000, 'Interface aufgebaut');
S.exec('mw.libs.browsertest.data.rules = $("#rules-list > li").length;');
S.click('#rules-add');
S.waitFor('$(".oo-ui-window-active").length === 1', 3000, 'Dialog angezeigt');
S.exec('$("input.oo-ui-inputWidget-input").first().val("tEST").change();');
S.click('$("table.oo-ui-widget .oo-ui-dropdownWidget-handle").first()');
S.click('.oo-ui-labelElement:visible:contains("Seitentitel")');
S.assert('$("table.oo-ui-widget tr").length === 2', 'Neue Zeile angezeigt');
S.exec('$("table.oo-ui-widget input[type=\'text\']").eq(0).val(mw.libs.browsertest.data.titleWithoutNS).change();');
S.click('[role="button"]:contains("Speichern")');
S.waitFor('$(".oo-ui-processDialog-errors").text()' +
'.indexOf("Fehlende Aktion für Regel!") > -1',
10000, 'Fehlende Markierung bemängelt');
S.click('.oo-ui-processDialog-errors [role="button"]:contains("Ausblenden")');
S.click('$(".oo-ui-dropdownWidget-handle").first()');
S.click('.oo-ui-labelElement:visible:contains("rot")');
S.click('[role="button"]:contains("Speichern")');
S.waitFor('mw.libs.browsertest.data.rules + 1 === $("#rules-list > li").length', 1000, 'Regel hinzugefügt');
S.load('Spezial:Watchlist++');
S.wait();
S.waitFor('$("#changes-table tr td:visible").length >= 10', 18000, 'Seite mit ungesehenen Änderungen');
S.assert('$("#changes-table tr.mark-1 .td-title:visible").text().indexOf(mw.libs.browsertest.data.title) > -1',
'Erwartete Seite mit richtiger Markierung aufgeführt');
S.exec('mw.libs.browsertest.data.changes = $("#changes-table tr td:visible").length / 10');
S.click('[role="button"]:contains("ein-/ausblenden")');
S.assert('$("#changes-table tr td:visible").length / 10 > mw.libs.browsertest.data.changes', 'weitere Änderungen');
S.exec('$("tr:contains(\'" + mw.libs.browsertest.data.title.replace(/\'/, "\\\\\'") + "\')")' +
'.find(".td-read a").first().click();');
S.click('[role="button"]:contains("ein-/ausblenden")');
S.assert('$("#changes-table tr td:visible").length / 10 === mw.libs.browsertest.data.changes - 1', 'als gelesen markiert');
S.click('$(".rules-edit").eq(-1)');
S.waitFor('$("table.oo-ui-widget input[type=\'text\']").eq(0).val() === mw.libs.browsertest.data.titleWithoutNS',
2000, 'Dialog angezeigt');
S.exec('window.confirm = function (q) {return q === "Soll die Regel „tEST“ wirklich gelöscht werden?";};');
S.click('$(".rules-delete").eq(-1)');
S.assert('mw.libs.browsertest.data.rules === $("#rules-list > li").length', 'Regel gelöscht');
S.exec('mw.libs.browsertest.data.done = false;' +
'mw.loader.using("mediawiki.api").then(function () {' +
'(new mw.Api()).unwatch(mw.libs.browsertest.data.title).then(function () {' +
'mw.libs.browsertest.data.done = true;' +
'});' +
'});'
);
S.waitFor('mw.libs.browsertest.data.done', 5000, 'Seite entobachtet');
});
})(mediaWiki.libs.browsertest.test);