Version 0.3.0 2013
- Total rethink and re-write of many core functions. Simon now works by looking for views and waiting for them to appear before applying taps and other actions. This is different to previous techniques.
- Separated search functions from action functions to simplify the interfaces.
- Removed all SI prefixes from macros as they where not necessary and made the resulting test code messy.
- Simplified and redesigned the DSL behind the macros and methods.
Version 0.2.1 Nov 2012
- Updated with new dNodi that can handle multiple attributes on a node. Now using a totally refactored dNodi.
Version 0.2.0 Nov 2012
- Major new changes.
- Added Pieman command line driver class.
- Modified Simon so he starts up with a HTTP Server waiting for the Pieman to issue instructions.
- Whole new set of command line args.
- More unit tests.
- Refactored and rebuilt the project and how it is assembled in XCode.
- Lots of other changes.
- Added -report option which turns on the command line output in Simon. This is now off by default.
- Added -UI option to display Simon’s UI. By default Simon now starts up in HTTP command mode.
- Lost of refactoring and new code.
Version 0.1.9, Aug 2012
- Incremented minor version to 0.2.0 because we are adding HTTP functionality for CI build boxes.
- Added the boolean property logActions to enabled/isable logging of actions to help debug.
- Modifed the startup so that the SIAppBackpack is automatically loaded when the runtime starts. This removes the need to manually inject it in the main.m file.
- Added a —autorun program argument which can be used to start the stories from running on startup. Otherwise a Ui is displayed.
- Changed startup so that instead of loading the UI by default, it now starts a HTTP server which waits for commands.
- Added isEmpty method to NSString+Simon category.
- Implemented better filtering function for the UI display.
- Seperated the UIAppBackpack into UI and Http versions.
- Now storing state in a separate class rather than in variables.
- Refactored all the notifications and UI handling code.
- Added source, story, error code and message properties to userData associated with various notifications.
- Refactored UI methods for triggering runs.
- Added return NSError to loadStories method.
Version 0.1.8, April 2012
- Moved execution recording and exception handling to SIStory to facilitate better reporting.
- Refactoring the backpack and runner to enable running of individual tests.
- Revamped UI for a better summary.
- Refactored so that the UI can be displayed without running tests.
- Added a search bar to the story report.
- Added ability to rerun all tests and search test file names and titles.
Version 0.1.7, March 2012
- Added a macro: SIIsViewPresent.
- Renamed SITapControl to SITapView.
- Renamed SISWipeControl to SISWipeView.
- Modded SITapView to accept both a NSString *query and a UIView *view as a parameter and to return the view it tapped.
- Modded SISwipeView to accept both a NSString *query and a UIView *view as a parameter and to return the view it swiped.
- Cleaned up some old references in SIUIApplication.
- Added new macros SIAssertViewPresent and SIAssertViewNotPresent.
- Added new macro SIAssertLabelTextEquals.
- Fixed issue where creating UITouch and UIEvents on a background thread would trigger a 0xbbadbeef crash.
- Refactored SIUIEventGenerator into an abstract class.
- Updated logging of UI to include all windows being displayed. This now picks up the keyboard.
- Refactored event sending code and background sending detection. Now a lot simpler due to using blocks.
- Removed caching of view handers because we simply don’t need it. Also made code simpler.
- Added the SIEnterText macro.
- New dNodi query attributes: protocol and isKindOfClass.
- Moved processing of runtime and mappings out of the SIStoryReader.
- Created a SIStorySources class to manage SIStorySource instances and handle selections.
- Refactored SIAppBackpack out to SIUIAppBackpack and SIHttpAppBackpack.
Version 0.1.6, March 2012
- Added more data to the display of a UI tree by breaking out the visitor code using the visitor pattern and delegate pattern.
- Added handlers for UIButtons and UILabels so that the print tree function can work better.
- Added label text, button titles, UIView tags, accessibility Identifiers, values and labels as attributes to be printed.
- Updated dNodi to 0.3.4 to fix issues with name clashes on properties of nodes.
- Added a new macro which waits for animations to finish on a specific UIView.
Version 0.1.5, March 2012
- Switched in app report to avoid using the root view controller because not every app has one.
Version 0.1.4, March 2012
- Fixed missing header.
- Adjusted so that macros work in ARC projects.
- Added ARC based test project.
Version 0.1.3, Febuary 2012
- Rewrote the class scanning to be more reliable when analysing classes for find mappings.
- Refactored the touch synthesis code.
- Added swipe gestures.
Version 0.1.2, Feburary 2012
- Updated dUsefulStuff to obtain access to a better error handling routine.
- Added KVC complient view attribute analysis.
- Adding assert macros.
- Added new in app display of results.
- Injected SIStepMapping into implementation classes storage area before call so class can access it. Mainly for testing.
- Revamped output of reporting in log.
- Updated to use dNodi (replacement for DXPath).
- More work on UI utils.
- More work on macros. Added assert macros.
- Added shutdown button to in app report to shutdown Simon.
- Added a UI based report for viewing results.
- Lots more doco.
- Removed passing a file to the backpack startup macro. Not really that useful.
- Removed dependency on -all_load for categories as latest linkers no longer need it.
- Got search attributes working with KVC values for UIViews.
- Added basic shortcut macros for tapping.
- Added custom exceptions.
Version 0.1.1, July 2011
- Brought in dXPath to handle XPath queries against a UI.
- Fixed bug in stripping story: prefix.
Version 0.1.0, July 2011
- Initial release of code. See Readme.