jasmine-headless-webkit/ext/jasmine-webkit-specrunner/Runner.h

67 lines
1.6 KiB
C
Raw Normal View History

2011-08-01 17:09:08 +00:00
#ifndef JHW_RUNNER
#define JHW_RUNNER
#include <QtGui>
#include <QtWebKit>
#include <QFile>
#include <QTextStream>
#include <iostream>
#include <fstream>
2011-08-01 17:09:08 +00:00
#include <QQueue>
#include "Page.h"
2011-08-03 16:26:39 +00:00
#include "ConsoleOutput.h"
2011-08-30 19:59:09 +00:00
#include "ReportFileOutput.h"
2011-08-01 17:09:08 +00:00
using namespace std;
class Runner: public QObject {
Q_OBJECT
public:
2011-09-06 15:37:29 +00:00
enum { TIMER_TICK = 200, MAX_LOOPS = 25 };
Runner();
void setColors(bool colors);
void reportFile(const QString &file);
void addFile(const QString &spec);
void go();
2011-08-01 17:09:08 +00:00
public slots:
void log(const QString &msg);
bool hasError();
void leavePageAttempt(const QString &msg);
2011-09-06 15:37:29 +00:00
void timerPause();
void timerDone();
void specPassed(const QString &specDetail);
void specFailed(const QString &specDetail);
void printName(const QString &name);
void printResult(const QString &result);
void finishSuite(const QString &duration, const QString &total, const QString& failed);
2011-08-01 17:09:08 +00:00
private slots:
void watch(bool ok);
void errorLog(const QString &msg, int lineNumber, const QString &sourceID);
void internalLog(const QString &note, const QString &msg);
void addJHW();
2011-09-06 15:37:29 +00:00
void timerEvent();
protected:
bool hasElement(const char *select);
private:
Page m_page;
2011-09-06 15:37:29 +00:00
QTimer m_ticker;
int m_runs;
bool hasErrors;
bool usedConsole;
bool isFinished;
bool didFail;
QQueue<QString> runnerFiles;
QStack<QString> failedSpecs;
ConsoleOutput consoleOutput;
ReportFileOutput reportFileOutput;
QString reportFileName;
void loadSpec();
};
2011-08-01 17:09:08 +00:00
#endif