'use strict';
/**
 * @module br/test/TestFixture
 */
var br = require('br/Core');
var Errors = require('br/Errors');
var Fixture = require('br/test/Fixture');
var ViewFixture = require('br/test/ViewFixture');
/**
 * @private
 * @class
 * @alias module:br/test/TestFixture
 */
function TestFixture(gwtTestRunner) {
	this.m_oGwtTestRunner = gwtTestRunner;
}
br.inherit(TestFixture, Fixture);
TestFixture.prototype.canHandleExactMatch = function() {
	return false;
};
TestFixture.prototype.canHandleProperty = function(property) {
	return property == 'continuesFrom';
};
TestFixture.prototype.addSubFixtures = function(fixtureRegistry) {
	fixtureRegistry.addFixture('page', new ViewFixture('body'));
};
TestFixture.prototype.doGiven = function(propertyName, value) {
	// Note: this line is needed to overcome a strange bug in IE that otherwise causes the exceptions thrown
	// within startingContinuesFrom() to be converted into a TypeError
	var startingContinuesFrom = window.startingContinuesFrom;
	
	startingContinuesFrom(value);
	finishedContinuesFrom();
};
TestFixture.prototype.doWhen = function(propertyName, value) {
	throw new Errors.InvalidTestError('when is not supported by TestFixture');
};
TestFixture.prototype.doThen = function(propertyName, value) {
	throw new Errors.InvalidTestError('then is not supported by TestFixture');
};
module.exports = TestFixture;