blob: 89c7c372bd61bd837151e43109fa71586ffed063 [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion static void throws(void f(), [_CheckExceptionFn check = null, String reason = null])
* Descriptive error message is provided in case of failure.
* @description Checks that message of thrown ExpectException includes
* the specified reason argument if any, both when the tested method
* doesn't throw any exceptions and when the check function returns false.
* @author varlax
* @reviewer rodionov
*/
import "../../../Utils/expect.dart";
typedef bool checkFn(exception);
typedef void test();
main() {
check(() {return;}, null, "sdsds sd dsf1");
check(() {return;}, (e) => true, "sdsds sd dsf2");
check(() {return;}, (e) => false, "sdsds sd dsf3");
check(() {throw "";}, (e) => false, "sdsds sd dsf4");
}
void check(test tFun, [checkFn checkFun = null, String reason = null]) {
try {
Expect.throws(tFun, checkFun, reason);
Expect.fail("ExpectException expected");
} on ExpectException catch(e) {
if (!e.message.contains(reason, 0)) throw "reason ($reason) not mentioned in ExpectException message (${e.message})";
}
}