Benutzer:Schnark/js/browsertest.js/watchlist++.js
aus Wikipedia, der freien Enzyklopädie
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
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/*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月01日T00: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);