public function test_present() { $guessing = new Guessing\Guessing(self::SEED); $view = new Guessing\GuessingView($guessing); //check if page contains initial setup elements //coverage for the else if num == 0 case $viewElements = $view->present(); $this->assertContains('<p><input type="submit" name="clear" value="New Game"></p></form>', $viewElements); $this->assertContains('<form method="post" action="guessing-post.php">', $viewElements); $this->assertContains('<h1>Guessing Game</h1>', $viewElements); $this->assertContains('<p class="message">Try to guess the number.</p>', $viewElements); $this->assertContains('<p><label for="value">Guess:</label> <input type="text" name="value" id="value"></p>', $viewElements); $this->assertContains('<p><input type="submit"></p>', $viewElements); //check for invalid elements //covers for the check invalid case $guessing->guess('hi'); $viewElements = $view->present(); $this->assertContains('<p class="message">Your guess of hi is invalid!</p>', $viewElements); $this->assertContains('<p><label for="value">Guess:</label> <input type="text" name="value" id="value"></p>', $viewElements); $this->assertContains('<p><input type="submit"></p>', $viewElements); //check for correct case //covers for the else if check == correct case $guessing->guess(23); $viewElements = $view->present(); $this->assertContains('<p class="message">After 1 guesses you are correct!</p>', $viewElements); $this->assertContains('<p> </p>', $viewElements); $this->assertContains('<p> </p>', $viewElements); //else too high case $guessing->guess(35); $viewElements = $view->present(); $num = $guessing->getNumGuesses(); $this->assertContains('<p class="message">After 2 guesses you are too high!</p>', $viewElements); $this->assertContains('<p><label for="value">Guess:</label> <input type="text" name="value" id="value"></p>', $viewElements); $this->assertContains('<p><input type="submit"></p>', $viewElements); $guessing->guess(1); $viewElements = $view->present(); $num = $guessing->getNumGuesses(); $this->assertContains('<p class="message">After 3 guesses you are too low!</p>', $viewElements); $this->assertContains('<p><label for="value">Guess:</label> <input type="text" name="value" id="value"></p>', $viewElements); $this->assertContains('<p><input type="submit"></p>', $viewElements); }
<?php require __DIR__ . '/lib/guessing.inc.php'; $view = new Guessing\GuessingView($guessing); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Guessing Game</title> <link href="guessing.css" type="text/css" rel="stylesheet" /> </head> <body> <?php echo $view->present(); ?> </body> </html>