User:AzaToth/testcase.js

/*	Testcase for possible bug (somewhere) To use, add following to your monobook.js: importScript('User:AzaToth/morebits.js'); importScript('User:AzaToth/testcase.js'); Then to run, click on the testcase button in your action bar.

*/

function testCaseButton { mw.util.addPortletLink( 'p-cactions', "javascript:testcase", "testcase", "tw-testcase", "Testcase", ""); } addOnloadHook(testCaseButton);

function testcase {

Window = new SimpleWindow( 600, 300 ); Window.setTitle( "Testing testing" ); div = document.createElement( 'div' ); Window.setContent( div ); Window.display; Status.init( div );

wgPageName = wgPageName.replace( '_', ' ' ); // for queen/king/whatever and country!

var xmlhttp = sajax_init_object; xmlhttp.query = { 'action': 'query', 'list': 'imageusage', 'titles': 'Image:Example.png', 'iulimit': 50, 'format': 'xml' };	var link = document.createElement( 'a' ); link.setAttribute( 'href', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?' + QueryString.create( xmlhttp.query ) ); link.appendChild( document.createTextNode( mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?' + QueryString.create( xmlhttp.query ) ) ); Status.info( ["going for ", link ] ); xmlhttp.overrideMimeType('text/xml'); xmlhttp.open( 'GET', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?' + QueryString.create( xmlhttp.query ), true); xmlhttp.onload = function {

var xmlDoc = this.responseXML; var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement); var count = xmlDoc.evaluate( 'count(//imageusage/iu)', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null );

Status.info( "got " + count.numberValue + " nodes" );

var snapshot = xmlDoc.evaluate('//imageusage/iu/@title', xmlDoc, nsResolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );

for ( var i = 0; i < snapshot.snapshotLength; ++i ) { var title = snapshot.snapshotItem(i).value; var xmlhttp = sajax_init_object; Status.info( 'title: ' + title ); xmlhttp.current = title; xmlhttp.query = { 'title': title, 'action': 'submit' };			xmlhttp.overrideMimeType('text/xml'); xmlhttp.open( 'GET', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( xmlhttp.query ), true); xmlhttp.onload = function {

var form = this.responseXML.getElementById('editform'); var text = form.wpTextbox1.value; var old_text = text;

var re = new RegExp( "(\\)", 'g' ); // simple regexp, might not always work text = text.replace( re, "$1\{\{ifdc|Image:Example.png\}\}$2" ); if( text == old_text ) { Status.info( 'No tag for ' + this.current ); return; } else { Status.info( 'Added tag for ' + this.current ); }

}							xmlhttp.send( null );

}

}	xmlhttp.send( null ); }