PostfixAdmin - web based virtual user administration interface for Postfix mail servers https://postfixadmin.github.io/postfixadmin/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.0 KiB

  1. <?php
  2. require_once('common.php');
  3. require_once('simpletest/unit_tester.php');
  4. require_once('Zend/XmlRpc/Client.php');
  5. require_once('Zend/Http/Client.php');
  6. require_once('Zend/Registry.php');
  7. class RemoteTest extends UnitTestCase {
  8. protected $server_url = 'http://orange/david/postfixadmin/trunk/xmlrpc.php';
  9. protected $username = 'roger@example.com';
  10. protected $password = 'patchthedog';
  11. /* xmlrpc objects... */
  12. protected $user;
  13. protected $vacation;
  14. protected $alias;
  15. public function __construct() {
  16. parent::__construct();
  17. }
  18. public function setUp() {
  19. parent::setUp();
  20. // ensure a user exists as per the above...
  21. $table_vacation = table_by_key('vacation');
  22. $table_alias = table_by_key('alias');
  23. $table_mailbox = table_by_key('mailbox');
  24. $table_domain = table_by_key('domain');
  25. $username = escape_string($this->username);
  26. $password = escape_string(pacrypt($this->password));
  27. db_query("DELETE FROM $table_vacation WHERE email = '$username'");
  28. db_query("DELETE FROM $table_alias WHERE domain = 'example.com'");
  29. db_query("DELETE FROM $table_mailbox WHERE domain = 'example.com'");
  30. db_query("DELETE FROM $table_domain WHERE domain = 'example.com'");
  31. // create new db records..
  32. $result = db_query("INSERT INTO $table_domain (domain, aliases, mailboxes) VALUES ('example.com', 100, 100)");
  33. if($result['rows'] != 1) {
  34. die("Failed to add domain to db....");
  35. }
  36. $result = db_query("INSERT INTO $table_mailbox (username, password, name, local_part, domain) VALUES ('$username', '$password', 'test user', 'roger', 'example.com')");
  37. if($result['rows'] != 1) {
  38. die("Failed to add user to db....");
  39. }
  40. $result = db_query("INSERT INTO $table_alias (address, goto, domain) VALUES ('$username', '$username', 'example.com')");
  41. if($result['rows'] != 1) {
  42. die("Failed to add alias to db....");
  43. }
  44. try {
  45. $this->xmlrpc_client = new Zend_XmlRpc_Client($this->server_url);
  46. $http_client = $this->xmlrpc_client->getHttpClient();
  47. $http_client->setCookieJar();
  48. $login_object = $this->xmlrpc_client->getProxy('login');
  49. $success = $login_object->login($this->username, $this->password);
  50. if(!$success) {
  51. var_dump($success);
  52. die("Failed to login to xmlrpc interface");
  53. }
  54. $this->user = $this->xmlrpc_client->getProxy('user');
  55. $this->alias = $this->xmlrpc_client->getProxy('alias');
  56. $this->vacation = $this->xmlrpc_client->getProxy('vacation');
  57. }
  58. catch(Exception $e) {
  59. var_dump($e);
  60. var_dump($this->xmlrpc_client->getHttpClient()->getLastResponse()->getBody());
  61. die("Error setting up..");
  62. }
  63. }
  64. }
  65. /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */