Benutzer:Schnark/js/browsertest.js/watchlist++.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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);
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/browsertest.js/watchlist%2B%2B.js&oldid=195250906"