/tests/include/MVC/Controller/SugarControllerTest.php

https://github.com/item/sugarcrm_dev · PHP · 180 lines · 141 code · 36 blank · 3 comment · 0 complexity · 238a589d2c5f9272fa143a959a5fd201 MD5 · raw file

  1. <?php
  2. require_once 'include/MVC/Controller/SugarController.php';
  3. class SugarControllerTest extends Sugar_PHPUnit_Framework_TestCase
  4. {
  5. public function setUp()
  6. {
  7. $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
  8. }
  9. public function tearDown()
  10. {
  11. SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
  12. unset($GLOBALS['current_user']);
  13. }
  14. public function testCallLegacyCodeIfLegacyListViewFound()
  15. {
  16. $module_name = 'TestModule'.mt_rand();
  17. sugar_mkdir("modules/$module_name/",null,true);
  18. sugar_touch("modules/$module_name/ListView.php");
  19. $controller = new SugarControllerMock;
  20. $controller->setup($module_name);
  21. $controller->do_action = 'ListView';
  22. $controller->view = 'list';
  23. $controller->callLegacyCode();
  24. $this->assertEquals('classic',$controller->view);
  25. rmdir_recursive("modules/$module_name");
  26. }
  27. public function testCallLegacyCodeIfNewListViewFound()
  28. {
  29. $module_name = 'TestModule'.mt_rand();
  30. sugar_mkdir("modules/$module_name/views",null,true);
  31. sugar_touch("modules/$module_name/views/view.list.php");
  32. $controller = new SugarControllerMock;
  33. $controller->setup($module_name);
  34. $controller->do_action = 'ListView';
  35. $controller->view = 'list';
  36. $controller->callLegacyCode();
  37. $this->assertEquals('list',$controller->view);
  38. rmdir_recursive("modules/$module_name");
  39. }
  40. /**
  41. * @ticket 41755
  42. */
  43. public function testCallLegacyCodeIfLegacyListViewAndNewListViewFound()
  44. {
  45. $module_name = 'TestModule'.mt_rand();
  46. sugar_mkdir("modules/$module_name/views",null,true);
  47. sugar_touch("modules/$module_name/views/view.list.php");
  48. sugar_touch("modules/$module_name/ListView.php");
  49. $controller = new SugarControllerMock;
  50. $controller->setup($module_name);
  51. $controller->do_action = 'ListView';
  52. $controller->view = 'list';
  53. $controller->callLegacyCode();
  54. $this->assertEquals('list',$controller->view);
  55. rmdir_recursive("modules/$module_name");
  56. }
  57. public function testCallLegacyCodeIfCustomLegacyListViewAndNewListViewFound()
  58. {
  59. $module_name = 'TestModule'.mt_rand();
  60. sugar_mkdir("modules/$module_name/views",null,true);
  61. sugar_touch("modules/$module_name/views/view.list.php");
  62. sugar_mkdir("custom/modules/$module_name",null,true);
  63. sugar_touch("custom/modules/$module_name/ListView.php");
  64. $controller = new SugarControllerMock;
  65. $controller->setup($module_name);
  66. $controller->do_action = 'ListView';
  67. $controller->view = 'list';
  68. $controller->callLegacyCode();
  69. $this->assertEquals('classic',$controller->view);
  70. rmdir_recursive("modules/$module_name");
  71. }
  72. public function testCallLegacyCodeIfLegacyListViewAndCustomNewListViewFound()
  73. {
  74. $module_name = 'TestModule'.mt_rand();
  75. sugar_mkdir("custom/modules/$module_name/views",null,true);
  76. sugar_touch("custom/modules/$module_name/views/view.list.php");
  77. sugar_mkdir("modules/$module_name",null,true);
  78. sugar_touch("modules/$module_name/ListView.php");
  79. $controller = new SugarControllerMock;
  80. $controller->setup($module_name);
  81. $controller->do_action = 'ListView';
  82. $controller->view = 'list';
  83. $controller->callLegacyCode();
  84. $this->assertEquals('classic',$controller->view);
  85. rmdir_recursive("modules/$module_name");
  86. }
  87. public function testCallLegacyCodeIfLegacyListViewAndNewListViewFoundAndCustomLegacyListViewFound()
  88. {
  89. $module_name = 'TestModule'.mt_rand();
  90. sugar_mkdir("modules/$module_name/views",null,true);
  91. sugar_touch("modules/$module_name/views/view.list.php");
  92. sugar_touch("modules/$module_name/ListView.php");
  93. sugar_mkdir("custom/modules/$module_name",null,true);
  94. sugar_touch("custom/modules/$module_name/ListView.php");
  95. $controller = new SugarControllerMock;
  96. $controller->setup($module_name);
  97. $controller->do_action = 'ListView';
  98. $controller->view = 'list';
  99. $controller->callLegacyCode();
  100. $this->assertEquals('classic',$controller->view);
  101. rmdir_recursive("modules/$module_name");
  102. }
  103. public function testCallLegacyCodeIfLegacyListViewAndNewListViewFoundAndCustomNewListViewFound()
  104. {
  105. $module_name = 'TestModule'.mt_rand();
  106. sugar_mkdir("custom/modules/$module_name/views",null,true);
  107. sugar_touch("custom/modules/$module_name/views/view.list.php");
  108. sugar_mkdir("modules/$module_name/views",null,true);
  109. sugar_touch("modules/$module_name/views/view.list.php");
  110. sugar_touch("modules/$module_name/ListView.php");
  111. $controller = new SugarControllerMock;
  112. $controller->setup($module_name);
  113. $controller->do_action = 'ListView';
  114. $controller->view = 'list';
  115. $controller->callLegacyCode();
  116. $this->assertEquals('list',$controller->view);
  117. rmdir_recursive("modules/$module_name");
  118. }
  119. public function testCallLegacyCodeIfLegacyListViewAndNewListViewFoundAndCustomLegacyListViewFoundAndCustomNewListViewFound()
  120. {
  121. $module_name = 'TestModule'.mt_rand();
  122. sugar_mkdir("custom/modules/$module_name/views",null,true);
  123. sugar_touch("custom/modules/$module_name/views/view.list.php");
  124. sugar_touch("custom/modules/$module_name/ListView.php");
  125. sugar_mkdir("modules/$module_name/views",null,true);
  126. sugar_touch("modules/$module_name/views/view.list.php");
  127. sugar_touch("modules/$module_name/ListView.php");
  128. $controller = new SugarControllerMock;
  129. $controller->setup($module_name);
  130. $controller->do_action = 'ListView';
  131. $controller->view = 'list';
  132. $controller->callLegacyCode();
  133. $this->assertEquals('list',$controller->view);
  134. rmdir_recursive("modules/$module_name");
  135. }
  136. }
  137. class SugarControllerMock extends SugarController
  138. {
  139. public $do_action;
  140. public function callLegacyCode()
  141. {
  142. return parent::callLegacyCode();
  143. }
  144. }