PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/webapp/plugins/twitter/tests/TestOfTwitterAuthController.php

http://github.com/ginatrapani/ThinkUp
PHP | 146 lines | 96 code | 17 blank | 33 comment | 1 complexity | 3844f6ffcb31eb09fcc72f5b89bf3d91 MD5 | raw file
Possible License(s): Apache-2.0, GPL-2.0, GPL-3.0, LGPL-2.1
  1. <?php
  2. /**
  3. *
  4. * ThinkUp/webapp/plugins/twitter/tests/TestOfTwitterAuthController.php
  5. *
  6. * Copyright (c) 2009-2012 Gina Trapani
  7. *
  8. * LICENSE:
  9. *
  10. * This file is part of ThinkUp (http://thinkupapp.com).
  11. *
  12. * ThinkUp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
  13. * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
  14. * later version.
  15. *
  16. * ThinkUp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
  17. * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  18. * details.
  19. *
  20. * You should have received a copy of the GNU General Public License along with ThinkUp. If not, see
  21. * <http://www.gnu.org/licenses/>.
  22. *
  23. * Test of TwitterAuthController
  24. *
  25. * @license http://www.gnu.org/licenses/gpl.html
  26. * @copyright 2009-2012 Gina Trapani
  27. * @author Gina Trapani <ginatrapani[at]gmail[dot]com>
  28. *
  29. */
  30. require_once dirname(__FILE__) . '/../../../../tests/init.tests.php';
  31. require_once THINKUP_WEBAPP_PATH.'_lib/extlib/simpletest/autorun.php';
  32. require_once THINKUP_WEBAPP_PATH.'config.inc.php';
  33. if (!class_exists('twitterOAuth')) {
  34. require_once THINKUP_WEBAPP_PATH.'plugins/twitter/tests/classes/mock.TwitterOAuth.php';
  35. }
  36. require_once THINKUP_WEBAPP_PATH.'plugins/twitter/model/class.TwitterOAuthThinkUp.php';
  37. require_once THINKUP_WEBAPP_PATH.'plugins/twitter/model/class.TwitterAPIAccessorOAuth.php';
  38. require_once THINKUP_WEBAPP_PATH.'plugins/twitter/model/class.TwitterPlugin.php';
  39. require_once THINKUP_WEBAPP_PATH.'plugins/twitter/controller/class.TwitterAuthController.php';
  40. class TestOfTwitterAuthController extends ThinkUpUnitTestCase {
  41. public function setUp(){
  42. parent::setUp();
  43. }
  44. public function testConstructor() {
  45. $controller = new TwitterAuthController(true);
  46. $this->assertTrue(isset($controller));
  47. }
  48. //Test not logged in
  49. public function testNotLoggedIn() {
  50. $controller = new TwitterAuthController(true);
  51. $results = $controller->go();
  52. $v_mgr = $controller->getViewManager();
  53. $config = Config::getInstance();
  54. $this->assertEqual('You must <a href="'.$config->getValue('site_root_path').
  55. 'session/login.php">log in</a> to do this.', $v_mgr->getTemplateDataItem('error_msg'));
  56. }
  57. //Test no params
  58. public function testLoggedInMissingParams() {
  59. $this->simulateLogin('me@example.com');
  60. $controller = new TwitterAuthController(true);
  61. $results = $controller->go();
  62. $v_mgr = $controller->getViewManager();
  63. $this->assertEqual('Secret token not set.', $v_mgr->getTemplateDataItem('info_msg'), "Info msg set");
  64. }
  65. //Test Session param but no Get param
  66. public function testLoggedInMissingToken() {
  67. $this->simulateLogin('me@example.com');
  68. SessionCache::put('oauth_request_token_secret', 'XXX');
  69. $controller = new TwitterAuthController(true);
  70. $results = $controller->go();
  71. $v_mgr = $controller->getViewManager();
  72. $this->assertEqual('No OAuth token specified.', $v_mgr->getTemplateDataItem('info_msg'), "Info msg set");
  73. }
  74. //Test Session param but no Get param
  75. public function testLoggedInMissingSessionWithGet() {
  76. $this->simulateLogin('me@example.com');
  77. $_GET['oauth_token'] = 'XXX';
  78. $controller = new TwitterAuthController(true);
  79. $results = $controller->go();
  80. $v_mgr = $controller->getViewManager();
  81. $this->assertEqual('Secret token not set.', $v_mgr->getTemplateDataItem('info_msg'), "Info msg set");
  82. }
  83. public function testLoggedInAllParams() {
  84. $this->simulateLogin('me@example.com');
  85. $_GET['oauth_token'] = 'XXX';
  86. SessionCache::put('oauth_request_token_secret', 'XXX');
  87. $owner_builder = FixtureBuilder::build('owners', array('id'=>'10', 'email'=>'me@example.com'));
  88. $namespace = OptionDAO::PLUGIN_OPTIONS . '-1';
  89. $plugn_opt_builder1 = FixtureBuilder::build('options', array('namespace'=>$namespace,
  90. 'option_name'=>'oauth_consumer_key', 'option_value'=>'XXX'));
  91. $plugn_opt_builder2 = FixtureBuilder::build('options', array('namespace'=>$namespace,
  92. 'option_name'=>'oauth_consumer_secret', 'option_value'=>'YYY'));
  93. $plugn_opt_builder3 = FixtureBuilder::build('options', array('namespace'=>$namespace,
  94. 'option_name'=>'num_twitter_errors', 'option_value'=>'5'));
  95. $plugn_opt_builder4 = FixtureBuilder::build('options', array('namespace'=>$namespace,
  96. 'option_name'=>'max_api_calls_per_crawl', 'option_value'=>'350'));
  97. $controller = new TwitterAuthController(true);
  98. $results = $controller->go();
  99. //sleep(100);
  100. $v_mgr = $controller->getViewManager();
  101. $this->assertEqual('Success! dougw on Twitter has been added to ThinkUp!',
  102. $v_mgr->getTemplateDataItem('success_msg'));
  103. }
  104. public function testLoggedInAllParamsServiceUserExists() {
  105. $this->simulateLogin('me@example.com');
  106. $_GET['oauth_token'] = 'XXX';
  107. SessionCache::put('oauth_request_token_secret', 'XXX');
  108. $builders[] = FixtureBuilder::build('owners', array('id'=>'10', 'email'=>'me@example.com'));
  109. $namespace = OptionDAO::PLUGIN_OPTIONS . '-1';
  110. $builders[] = FixtureBuilder::build('options', array('namespace'=>$namespace,
  111. 'option_name'=>'oauth_consumer_key', 'option_value'=>'XXX'));
  112. $builders[] = FixtureBuilder::build('options', array('namespace'=>$namespace,
  113. 'option_name'=>'oauth_consumer_secret', 'option_value'=>'YYY'));
  114. $builders[] = FixtureBuilder::build('options', array('namespace'=>$namespace,
  115. 'option_name'=>'num_twitter_errors', 'option_value'=>'5'));
  116. $builders[] = FixtureBuilder::build('options', array('namespace'=>$namespace,
  117. 'option_name'=>'max_api_calls_per_crawl', 'option_value'=>'350'));
  118. $builders[] = FixtureBuilder::build('instances', array('network_user_id'=>'1401881',
  119. 'network_username'=>'dougw', 'network'=>'twitter'));
  120. $builders[] = FixtureBuilder::build('instances_twitter', array('last_page_fetched_replies'=>1));
  121. $builders[] = FixtureBuilder::build('owner_instances', array('instance_id'=>1, 'owner_id'=>10));
  122. $controller = new TwitterAuthController(true);
  123. $results = $controller->go();
  124. $v_mgr = $controller->getViewManager();
  125. $this->debug($results);
  126. $this->assertEqual('dougw on Twitter is already set up in ThinkUp! To add a different Twitter account, log '.
  127. 'out of Twitter.com in your browser and authorize ThinkUp again.', $v_mgr->getTemplateDataItem('success_msg'));
  128. }
  129. }