2011-02-08 13:48:34 -05:00
|
|
|
/*
|
|
|
|
* iTchRunnerMainView.h
|
|
|
|
* iTchRunner
|
|
|
|
*
|
|
|
|
* Created by Phil on 07/02/2011.
|
|
|
|
* Copyright 2011 Two Blue Cubes Ltd. All rights reserved.
|
|
|
|
*
|
|
|
|
*/
|
2012-09-17 01:42:29 -04:00
|
|
|
#ifndef TWOBLUECUBES_ITCHRUNNERMAINVIEW_H_INCLUDED
|
|
|
|
#define TWOBLUECUBES_ITCHRUNNERMAINVIEW_H_INCLUDED
|
2011-02-08 13:48:34 -05:00
|
|
|
|
|
|
|
#include "internal/catch_config.hpp"
|
|
|
|
#include "internal/catch_runner_impl.hpp"
|
2012-05-10 03:16:30 -04:00
|
|
|
#include "internal/catch_context_impl.hpp"
|
2011-02-08 13:48:34 -05:00
|
|
|
#include "catch.hpp"
|
|
|
|
|
|
|
|
#include "iTchRunnerReporter.h"
|
|
|
|
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
|
|
|
|
@interface iTchRunnerMainView : UIView<iTchRunnerDelegate, UIActionSheetDelegate>
|
|
|
|
{
|
|
|
|
UITextField* appName;
|
|
|
|
}
|
|
|
|
|
2012-02-15 03:21:02 -05:00
|
|
|
-(void) showAlert;
|
|
|
|
|
2011-02-08 13:48:34 -05:00
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation iTchRunnerMainView
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-(id) initWithFrame:(CGRect)frame
|
|
|
|
{
|
|
|
|
if ((self = [super initWithFrame:frame]))
|
|
|
|
{
|
|
|
|
// Initialization code
|
|
|
|
self.backgroundColor = [UIColor blackColor];
|
|
|
|
|
|
|
|
appName = [[UITextField alloc] initWithFrame: CGRectMake( 0, 50, 320, 50 )];
|
|
|
|
[self addSubview: appName];
|
2012-03-17 14:36:00 -04:00
|
|
|
arcSafeRelease( appName );
|
2011-02-08 13:48:34 -05:00
|
|
|
appName.textColor = [[UIColor alloc] initWithRed:0.35 green:0.35 blue:1 alpha:1];
|
2012-03-17 14:36:00 -04:00
|
|
|
arcSafeRelease( appName.textColor );
|
2012-08-06 15:17:23 -04:00
|
|
|
appName.textAlignment = UITextAlignmentCenter; // or NSTextAlignmentCenter
|
2011-02-08 13:48:34 -05:00
|
|
|
|
2011-02-08 13:48:45 -05:00
|
|
|
appName.text = [NSString stringWithFormat:@"CATCH tests"];
|
2012-02-15 03:21:02 -05:00
|
|
|
// [self performSelector: @selector(showAlert) withObject:nil afterDelay:0.1];
|
|
|
|
[self performSelectorOnMainThread:@selector(showAlert) withObject:nil waitUntilDone:NO];
|
2011-02-08 13:48:34 -05:00
|
|
|
|
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-(void) dealloc
|
|
|
|
{
|
|
|
|
[appName removeFromSuperview];
|
2012-03-17 14:36:00 -04:00
|
|
|
#if !CATCH_ARC_ENABLED
|
2011-02-08 13:48:34 -05:00
|
|
|
[super dealloc];
|
2012-03-17 14:36:00 -04:00
|
|
|
#endif
|
2011-02-08 13:48:34 -05:00
|
|
|
}
|
|
|
|
|
2012-02-15 03:21:02 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-(void) showAlert
|
|
|
|
{
|
|
|
|
UIActionSheet* menu = [[UIActionSheet alloc] initWithTitle:@"Options"
|
|
|
|
delegate:self
|
|
|
|
cancelButtonTitle:nil
|
|
|
|
destructiveButtonTitle:nil
|
|
|
|
otherButtonTitles:@"Run all tests", nil];
|
|
|
|
[menu showInView: self];
|
2012-03-17 14:36:00 -04:00
|
|
|
arcSafeRelease( menu );
|
2012-02-15 03:21:02 -05:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2011-02-08 13:48:34 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-(void) actionSheet: (UIActionSheet*) sheet clickedButtonAtIndex: (NSInteger) index
|
|
|
|
{
|
|
|
|
Catch::Config config;
|
|
|
|
config.setReporter( new Catch::iTchRunnerReporter( self ) );
|
|
|
|
Catch::Runner runner( config );
|
|
|
|
|
|
|
|
config.getReporter()->StartGroup( "" );
|
|
|
|
runner.runAll( true );
|
2012-02-27 14:03:54 -05:00
|
|
|
config.getReporter()->EndGroup( "", runner.getTotals() );
|
2011-02-08 13:48:45 -05:00
|
|
|
|
2012-02-27 14:03:54 -05:00
|
|
|
if( runner.getTotals().assertions.failed == 0 )
|
2011-02-08 13:48:45 -05:00
|
|
|
{
|
2011-03-29 03:29:01 -04:00
|
|
|
NSLog( @"no failures" );
|
2012-02-27 14:03:54 -05:00
|
|
|
if( runner.getTotals().assertions.passed > 0 )
|
2011-02-08 13:48:45 -05:00
|
|
|
appName.textColor = [[UIColor alloc] initWithRed:0.35 green:1 blue:0.35 alpha:1];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-02-27 14:03:54 -05:00
|
|
|
NSLog( @"%lu failures", runner.getTotals().assertions.failed );
|
2011-02-08 13:48:45 -05:00
|
|
|
appName.textColor = [[UIColor alloc] initWithRed:1 green:0.35 blue:0.35 alpha:1];
|
|
|
|
}
|
2011-02-08 13:48:34 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-(void) testWasRun: (const Catch::ResultInfo*) pResultInfo
|
|
|
|
{
|
|
|
|
const Catch::ResultInfo& resultInfo = *pResultInfo;
|
|
|
|
std::ostringstream oss;
|
|
|
|
|
|
|
|
if( resultInfo.hasExpression() )
|
|
|
|
{
|
|
|
|
oss << resultInfo.getExpression();
|
|
|
|
if( resultInfo.ok() )
|
|
|
|
oss << " succeeded";
|
|
|
|
else
|
|
|
|
oss << " failed";
|
|
|
|
}
|
|
|
|
switch( resultInfo.getResultType() )
|
|
|
|
{
|
|
|
|
case Catch::ResultWas::ThrewException:
|
|
|
|
if( resultInfo.hasExpression() )
|
|
|
|
oss << " with unexpected";
|
|
|
|
else
|
|
|
|
oss << "Unexpected";
|
|
|
|
oss << " exception with message: '" << resultInfo.getMessage() << "'";
|
|
|
|
break;
|
|
|
|
case Catch::ResultWas::Info:
|
|
|
|
oss << "info: '" << resultInfo.getMessage() << "'";
|
|
|
|
break;
|
|
|
|
case Catch::ResultWas::Warning:
|
|
|
|
oss << "warning: '" << resultInfo.getMessage() << "'";
|
|
|
|
break;
|
|
|
|
case Catch::ResultWas::ExplicitFailure:
|
|
|
|
oss << "failed with message: '" << resultInfo.getMessage() << "'";
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if( resultInfo.hasExpression() )
|
|
|
|
{
|
|
|
|
oss << " for: " << resultInfo.getExpandedExpression();
|
|
|
|
}
|
|
|
|
oss << std::endl;
|
|
|
|
NSLog( @"%s", oss.str().c_str() );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@end
|
2012-09-17 01:42:29 -04:00
|
|
|
|
|
|
|
#endif // TWOBLUECUBES_ITCHRUNNERMAINVIEW_H_INCLUDED
|