This is a short break to do UI automation testing with iOS. Here we look at some sample code (untested) for automating Notes app after we set it in Instruments.
var testName = "Notes application testing"; UIALogger.logStart(testName);
UIALogger.logMessage("Create a new note"); var target = app.localTarget(); var app = UIATarget.localTarget().frontMostApp(); // assumes Notes has been specified in Instruments and starts on a fresh page var page = app.textViews[0]; var sentence = "The big brown bear ate the brownies in the big paper bag."; var added = "";
UIALogger.logMessage("Repeat entry of : The big brown bear ate the brownies in the big paper bag."); for( var i = 0; i < 6; i++) { if (i == 0) app.navigationBar().buttons()["+"].tap(); else app.textFields[0].tap(); saveSentence(app, page, sentence); added.concat(sentence); }
UIALogger.logMessage("Save a log of the inserted lines in the note."); saveLog(target, app, page);
UIALogger.logMessage("Retrieve the note created in #5 and confirm the lines are exactly the same."); if (page.value.indexOf(added) != -1) { UIALogger.logPass(testName); } else { UIALogger.logFail(testName); }
UIALogger.logMessage("Delete the note and confirm it is no longer stored in Notes."); deleteNotes(target, app, sentence, testName);
UIALogger.logMessage("Test completed.");
UIATarget.onAlert = function onAlert(alert) { alert.buttons()["Delete Note"].tap(); return true; }
function saveSentence(target, app, page, sentence) { page = app.textViews[0]; UIALogger.logMessage("Open Notes"); target.delay(1); page.tap(); UIALogger.logMessage("The new note must have the following line in it - The big brown bear ate the brownies in the big paper bag."); page.setValue(page.value + sentence) ; UIALogger.logMessage("Close Notes"); app.navigationBar().buttons()["Done"].tap(); app.navigationBar().buttons()["Notes"].tap(); }
function saveLog(target, app, page) { target.delay(1); app.textFields[0].tap(); page = app.textViews[0]; page.tap(); page.setValue(page.value + page.logElementTree()) ; app.navigationBar().buttons()["Done"].tap(); app.navigationBar().buttons()["Notes"].tap(); app.textFields[0].tap(); page = app.textViews[0]; }
function deleteNotes(target, app, title, testName) { target.delay(1); UIATarget.localTarget().deactivateAppForDuration(10); app.navigationBar().buttons()["Delete"].tap(); app.navigationBar().buttons()["Notes"].tap(); if (app.textFields[0].value == title) UIALogger.logFail(testName); }
No comments:
Post a Comment