<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Terminal Reporter Spec</title>

    <link rel="stylesheet" href="../ext/jasmine.css" type="text/css" />

    <script type="text/javascript" src="../ext/jasmine.js"></script>
    <script type="text/javascript" src="../ext/jasmine-html.js"></script>
    <script type="text/javascript" src="../src/jasmine.terminal_reporter.js"></script>
</head>
<body>
    <script type="text/javascript">
        describe("Basic Suite", function() {
            it("Should pass a basic truthiness test.", function() {
                expect(true).toEqual(true);
            });

            it("Should fail when it hits an inequal statement.", function() {
                expect(1+1).toEqual(3);
            });
        });

        describe("Another Suite", function() {
            it("Should pass this test as well.", function() {
                expect(0).toEqual(0);
            });
        });

        jasmine.getEnv().addReporter(new jasmine.TerminalReporter({
            verbosity: 3,
            color: true
        }));
        jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
        jasmine.getEnv().execute();
    </script>
</body>
</html>