index.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. require_once('simpletest/unit_tester.php');
  3. require_once('simpletest/browser.php');
  4. require_once('simpletest/reporter.php');
  5. define(URL, 'http://ponape.com.ar/libre.fm/trunk/tests');
  6. define(USERNAME, 'testuser');
  7. define(PASSWORD, 'goodpassword');
  8. include('web/database.php');
  9. include('web/data/TagCloud.php');
  10. class testLibreFM extends UnitTestCase {
  11. function __construct () {
  12. $this->UnitTestCase();
  13. }
  14. function testDB () {
  15. global $mdb2, $connect_string;
  16. # Test if the connection string is more or less connectionstringesque :p
  17. $this->assertWantedPattern('/(mysql|sqlite|pgsql):\/\/[a-zA-Z0-9]*:.*@[a-zA-Z0-9]*:[0-9]*\/[a-zA-Z0-9_]*/', $connect_string);
  18. $this->assertFalse(PEAR::isError($mdb2));
  19. }
  20. function testTagCloud () {
  21. # Testing if we have an array as result
  22. $this->assertIsA(TagCloud::generateTagCloud('Scrobbles', 'artist', 20, null), 'array');
  23. }
  24. function login ($username, $password) {
  25. $timestamp = time();
  26. $token = md5(md5($password) . $timestamp);
  27. $browser =& new SimpleBrowser();
  28. $browser->get('http://turtle.libre.fm/', array('hs' => 'true', 'u' => $username, 't' => $timestamp, 'a' => $token, 'c' => 'utt'));
  29. return $browser;
  30. }
  31. function testScrobbleBadAuth() {
  32. $this->assertTrue(true);
  33. }
  34. function WebLogin($username, $password) {
  35. $browser =& new SimpleBrowser();
  36. $browser->get(URL . '/web/login.php');
  37. $browser->setField('username', $username);
  38. $browser->setField('password', $password);
  39. $browser->clickSubmitByName('login');
  40. return $browser;
  41. }
  42. function testWebLoginBad() {
  43. $badlogin = $this->WebLogin(USERNAME, 'badpassword');
  44. $this->assertEqual($badlogin->getUrl(), URL . '/web/login.php');
  45. }
  46. function testWebLoginGood() {
  47. $goodlogin = $this->WebLogin(USERNAME, PASSWORD);
  48. $this->assertEqual($goodlogin->getUrl(), URL . '/web/index.php');
  49. }
  50. function testWebLogout() {
  51. $logout = $this->WebLogin(USERNAME, PASSWORD);
  52. $this->assertTrue(preg_match('/login\.php\?action=logout/', $logout->getContent()));
  53. $logout->click('logout');
  54. $this->assertFalse(preg_match('/login\.php\?action=logout/', $logout->getContentAsText()));
  55. }
  56. }
  57. $test = new testLibreFM();
  58. $test->run(new HtmlReporter());
  59. ?>