Commit fd82767fd8355e3c1871b8c4ec489056233b4890

Authored by Tomáz Martins
1 parent 59f11c19

Testing plugins_menu in templatetags

Signed-off-by: TomazMartins <tomaz.r.martins@gmail.com>
Signed-off-by: Matheus Faria <matheus.sousa.faria@gmail.com>
Showing 1 changed file with 135 additions and 0 deletions   Show diff stats
colab/plugins/tests/test_templatetags.py 0 → 100644
... ... @@ -0,0 +1,135 @@
  1 +from mock import Mock
  2 +
  3 +from django.test import TestCase, Client
  4 +from django.core.cache import cache
  5 +
  6 +from colab.plugins.templatetags import plugins
  7 +from colab.accounts.models import User
  8 +
  9 +
  10 +class PluginsMenuTest(TestCase):
  11 +
  12 + def setUp(self):
  13 + self.user = self.create_user()
  14 + self.client = Client()
  15 + cache.clear()
  16 +
  17 + def tearDown(self):
  18 + cache.clear()
  19 + self.client.logout()
  20 +
  21 + def create_user(self):
  22 + user = User()
  23 + user.username = "USERtestCoLaB"
  24 + user.set_password("123colab4")
  25 + user.email = "usertest@colab.com.br"
  26 + user.id = 1
  27 + user.first_name = "USERtestCoLaB"
  28 + user.last_name = "COLAB"
  29 + user.save()
  30 +
  31 + return user
  32 +
  33 + def authenticate_user(self):
  34 + self.client.login(username=self.user.username,
  35 + password="123colab4")
  36 +
  37 + def test_plugins_menu_without_menu_urls(self):
  38 + self.authenticate_user()
  39 + plugin_1 = {'menu_title': 'myTitle', 'menu_urls': []}
  40 +
  41 + test_context = {'user': self.user,
  42 + 'plugins': {'plugin_1': plugin_1}}
  43 +
  44 + menu = plugins.plugins_menu(test_context)
  45 +
  46 + self.assertEquals(menu.strip(), "")
  47 +
  48 + def test_plugins_menu_with_1_menu_urls(self):
  49 + self.authenticate_user()
  50 + link = 'http://url'
  51 + title = 'myTitle'
  52 + plugin_1 = {'menu_title': title,
  53 + 'menu_urls': [{'url': link, 'display': 'LRU'}]}
  54 +
  55 + test_context = {'user': self.user,
  56 + 'plugins': {'plugin_1': plugin_1}}
  57 +
  58 + menu = plugins.plugins_menu(test_context)
  59 +
  60 + self.assertIn(link, menu)
  61 + self.assertIn(title, menu)
  62 +
  63 + def test_plugins_menu_with_many_menu_urls(self):
  64 + self.authenticate_user()
  65 +
  66 + link1 = 'http://url1'
  67 + title1 = 'myTitle1'
  68 + display1 = 'LRU1'
  69 + link2 = 'http://url2'
  70 + display2 = 'LRU2'
  71 +
  72 + plugin_1 = {'menu_title': title1,
  73 + 'menu_urls': [{'url': link1, 'display': display1},
  74 + {'url': link2, 'display': display2}]}
  75 +
  76 + test_context = {'user': self.user,
  77 + 'plugins': {'plugin_1': plugin_1}}
  78 +
  79 + menu = plugins.plugins_menu(test_context)
  80 +
  81 + self.assertIn(link1, menu)
  82 + self.assertIn(title1, menu)
  83 + self.assertIn(display1, menu)
  84 + self.assertIn(link2, menu)
  85 + self.assertIn(display2, menu)
  86 +
  87 + def test_plugins_menu_with_multiple_plugins(self):
  88 + self.authenticate_user()
  89 +
  90 + link1 = 'http://url1'
  91 + title1 = 'myTitle1'
  92 + display1 = 'LRU1'
  93 + link2 = 'http://url2'
  94 + display2 = 'LRU2'
  95 +
  96 + plugin_1 = {'menu_title': title1,
  97 + 'menu_urls': [{'url': link1, 'display': display1},
  98 + {'url': link2, 'display': display2}]}
  99 +
  100 + title2 = 'myTitle2'
  101 + plugin_2 = {'menu_title': title2,
  102 + 'menu_urls': []}
  103 +
  104 + test_context = {'user': self.user,
  105 + 'plugins': {'plugin_1': plugin_1,
  106 + 'plugin_2': plugin_2}}
  107 +
  108 + menu = plugins.plugins_menu(test_context)
  109 +
  110 + self.assertIn(link1, menu)
  111 + self.assertIn(title1, menu)
  112 + self.assertIn(display1, menu)
  113 + self.assertIn(link2, menu)
  114 + self.assertIn(display2, menu)
  115 + self.assertNotIn(title2, menu)
  116 +
  117 + class ColabUrlMock(Mock):
  118 + def auth(self):
  119 + return True
  120 +
  121 + def test_plugins_menu_with_inactivate_user(self):
  122 + self.user.is_active = False
  123 + self.user.save()
  124 +
  125 + self.authenticate_user()
  126 + title = 'myTitle'
  127 + plugin_1 = {'menu_title': title,
  128 + 'menu_urls': [self.ColabUrlMock()]}
  129 +
  130 + test_context = {'user': self.user,
  131 + 'plugins': {'plugin_1': plugin_1}}
  132 +
  133 + menu = plugins.plugins_menu(test_context)
  134 +
  135 + self.assertEquals("", menu.strip())
... ...