views_argument_validator.test 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * @file
  4. * Definition of ViewsArgumentValidatorTest.
  5. */
  6. /**
  7. * Tests Views argument validators.
  8. */
  9. class ViewsArgumentValidatorTest extends ViewsSqlTest {
  10. public static function getInfo() {
  11. return array(
  12. 'name' => 'Argument validator',
  13. 'group' => 'Views Plugins',
  14. 'description' => 'Test argument validator tests.',
  15. );
  16. }
  17. function testArgumentValidatePhp() {
  18. $string = $this->randomName();
  19. $view = $this->view_test_argument_validate_php($string);
  20. $view->set_display('default');
  21. $view->pre_execute();
  22. $view->init_handlers();
  23. $this->assertTrue($view->argument['null']->validate_arg($string));
  24. // Reset safed argument validation.
  25. $view->argument['null']->argument_validated = NULL;
  26. $this->assertFalse($view->argument['null']->validate_arg($this->randomName()));
  27. }
  28. function testArgumentValidateNumeric() {
  29. $view = $this->view_argument_validate_numeric();
  30. $view->set_display('default');
  31. $view->pre_execute();
  32. $view->init_handlers();
  33. $this->assertFalse($view->argument['null']->validate_arg($this->randomString()));
  34. // Reset safed argument validation.
  35. $view->argument['null']->argument_validated = NULL;
  36. $this->assertTrue($view->argument['null']->validate_arg(12));
  37. }
  38. function view_test_argument_validate_php($string) {
  39. $code = 'return $argument == \''. $string .'\';';
  40. $view = new view;
  41. $view->name = 'view_argument_validate_numeric';
  42. $view->description = '';
  43. $view->tag = '';
  44. $view->view_php = '';
  45. $view->base_table = 'node';
  46. $view->is_cacheable = FALSE;
  47. $view->api_version = 2;
  48. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  49. /* Display: Master */
  50. $handler = $view->new_display('default', 'Master', 'default');
  51. $handler->display->display_options['access']['type'] = 'none';
  52. $handler->display->display_options['cache']['type'] = 'none';
  53. $handler->display->display_options['exposed_form']['type'] = 'basic';
  54. $handler->display->display_options['pager']['type'] = 'full';
  55. $handler->display->display_options['style_plugin'] = 'default';
  56. $handler->display->display_options['row_plugin'] = 'fields';
  57. /* Argument: Global: Null */
  58. $handler->display->display_options['arguments']['null']['id'] = 'null';
  59. $handler->display->display_options['arguments']['null']['table'] = 'views';
  60. $handler->display->display_options['arguments']['null']['field'] = 'null';
  61. $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
  62. $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
  63. $handler->display->display_options['arguments']['null']['validate_type'] = 'php';
  64. $handler->display->display_options['arguments']['null']['validate_options']['code'] = $code;
  65. $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
  66. return $view;
  67. }
  68. function view_argument_validate_numeric() {
  69. $view = new view;
  70. $view->name = 'view_argument_validate_numeric';
  71. $view->description = '';
  72. $view->tag = '';
  73. $view->view_php = '';
  74. $view->base_table = 'node';
  75. $view->is_cacheable = FALSE;
  76. $view->api_version = 2;
  77. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  78. /* Display: Master */
  79. $handler = $view->new_display('default', 'Master', 'default');
  80. $handler->display->display_options['access']['type'] = 'none';
  81. $handler->display->display_options['cache']['type'] = 'none';
  82. $handler->display->display_options['exposed_form']['type'] = 'basic';
  83. $handler->display->display_options['pager']['type'] = 'full';
  84. $handler->display->display_options['style_plugin'] = 'default';
  85. $handler->display->display_options['row_plugin'] = 'fields';
  86. /* Argument: Global: Null */
  87. $handler->display->display_options['arguments']['null']['id'] = 'null';
  88. $handler->display->display_options['arguments']['null']['table'] = 'views';
  89. $handler->display->display_options['arguments']['null']['field'] = 'null';
  90. $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
  91. $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
  92. $handler->display->display_options['arguments']['null']['validate_type'] = 'numeric';
  93. $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
  94. return $view;
  95. }
  96. }