Commit 7e162ba303c9d8674c6104c8e9e1a7843b772cf7

Authored by Michel Felipe
Committed by Leandro Santos
1 parent 20e322c5

Added unit and functional tests of tags in tasks

test/functional/tasks_controller_test.rb
@@ -66,6 +66,21 @@ class TasksControllerTest < ActionController::TestCase @@ -66,6 +66,21 @@ class TasksControllerTest < ActionController::TestCase
66 assert_not_includes assigns(:tasks), task_spam 66 assert_not_includes assigns(:tasks), task_spam
67 end 67 end
68 68
  69 + should 'save tasks tags' do
  70 +
  71 + requestor = fast_create(Person)
  72 +
  73 + task_one = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Task Test'})
  74 + task_two = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Another Task'})
  75 +
  76 + post :save_tags, :task_id => task_one.id, :tag_list => 'noosfero,test'
  77 + post :save_tags, :task_id => task_two.id, :tag_list => 'test'
  78 +
  79 + assert_includes task_one.tags_from(nil), 'test'
  80 + assert_not_includes task_two.tags_from(nil), 'noosfero'
  81 +
  82 + end
  83 +
69 should 'be able to finish a task' do 84 should 'be able to finish a task' do
70 t = profile.tasks.build; t.save! 85 t = profile.tasks.build; t.save!
71 86
@@ -149,7 +164,7 @@ class TasksControllerTest < ActionController::TestCase @@ -149,7 +164,7 @@ class TasksControllerTest < ActionController::TestCase
149 164
150 should 'create a ticket with profile requestor' do 165 should 'create a ticket with profile requestor' do
151 post :new, :profile => profile.identifier, :ticket => {:name => 'new task'} 166 post :new, :profile => profile.identifier, :ticket => {:name => 'new task'}
152 - 167 +
153 assert_equal profile, assigns(:ticket).requestor 168 assert_equal profile, assigns(:ticket).requestor
154 end 169 end
155 170
@@ -381,13 +396,13 @@ class TasksControllerTest < ActionController::TestCase @@ -381,13 +396,13 @@ class TasksControllerTest < ActionController::TestCase
381 t2 = CleanHouse.create!(:requestor => requestor, :target => profile) 396 t2 = CleanHouse.create!(:requestor => requestor, :target => profile)
382 t3 = FeedDog.create!(:requestor => requestor, :target => profile) 397 t3 = FeedDog.create!(:requestor => requestor, :target => profile)
383 398
384 - post :index, :filter_type => t1.type 399 + get :index, :filter_type => t1.type
385 400
386 assert_includes assigns(:tasks), t1 401 assert_includes assigns(:tasks), t1
387 assert_includes assigns(:tasks), t2 402 assert_includes assigns(:tasks), t2
388 assert_not_includes assigns(:tasks), t3 403 assert_not_includes assigns(:tasks), t3
389 404
390 - post :index 405 + get :index
391 406
392 assert_includes assigns(:tasks), t1 407 assert_includes assigns(:tasks), t1
393 assert_includes assigns(:tasks), t2 408 assert_includes assigns(:tasks), t2
@@ -416,6 +431,22 @@ class TasksControllerTest < ActionController::TestCase @@ -416,6 +431,22 @@ class TasksControllerTest < ActionController::TestCase
416 assert_includes assigns(:tasks), t3 431 assert_includes assigns(:tasks), t3
417 end 432 end
418 433
  434 + should 'filter tasks by tags' do
  435 +
  436 + requestor = fast_create(Person)
  437 +
  438 + task_one = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Task Test'})
  439 + task_two = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Another Task'})
  440 +
  441 + profile.tag(task_one, with: 'noosfero,test', on: :tags)
  442 + profile.tag(task_two, with: 'test', on: :tags)
  443 +
  444 + get :index, :filter_tags => 'noosfero'
  445 +
  446 + assert_includes assigns(:tasks), task_one
  447 + assert_not_includes assigns(:tasks), task_two
  448 + end
  449 +
419 should 'return tasks ordered accordingly and limited by pages' do 450 should 'return tasks ordered accordingly and limited by pages' do
420 time = Time.now 451 time = Time.now
421 person = fast_create(Person) 452 person = fast_create(Person)
test/unit/task_test.rb
@@ -317,7 +317,7 @@ class TaskTest < ActiveSupport::TestCase @@ -317,7 +317,7 @@ class TaskTest < ActiveSupport::TestCase
317 assert_includes Task.to(another_person), t4 317 assert_includes Task.to(another_person), t4
318 end 318 end
319 319
320 - should 'filter tasks by type with named_scope' do 320 + should 'filter tasks by type with named scope' do
321 class CleanHouse < Task; end 321 class CleanHouse < Task; end
322 class FeedDog < Task; end 322 class FeedDog < Task; end
323 requestor = fast_create(Person) 323 requestor = fast_create(Person)
@@ -333,6 +333,25 @@ class TaskTest &lt; ActiveSupport::TestCase @@ -333,6 +333,25 @@ class TaskTest &lt; ActiveSupport::TestCase
333 assert_includes Task.of(nil), t3 333 assert_includes Task.of(nil), t3
334 end 334 end
335 335
  336 + should 'filter tasks by tags with named scope' do
  337 +
  338 + requestor = fast_create(Person)
  339 + target = fast_create(Person)
  340 + profile = sample_user
  341 +
  342 + task_one = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Task Test'})
  343 + task_two = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Another Task'})
  344 +
  345 + profile.tag(task_one, with: 'noosfero,test', on: :tags)
  346 + profile.tag(task_two, with: 'test', on: :tags)
  347 +
  348 + data = Task.tagged_with('noosfero', any: true)
  349 +
  350 + assert_includes data, task_one
  351 + assert_not_includes data, task_two
  352 +
  353 + end
  354 +
336 should 'order tasks by some attribute correctly' do 355 should 'order tasks by some attribute correctly' do
337 Task.destroy_all 356 Task.destroy_all
338 t1 = fast_create(Task, :status => 4, :created_at => Time.now + 1.hour) 357 t1 = fast_create(Task, :status => 4, :created_at => Time.now + 1.hour)
@@ -440,6 +459,23 @@ class TaskTest &lt; ActiveSupport::TestCase @@ -440,6 +459,23 @@ class TaskTest &lt; ActiveSupport::TestCase
440 assert_equal person, task.responsible 459 assert_equal person, task.responsible
441 end 460 end
442 461
  462 + should 'save tasks tags' do
  463 +
  464 + requestor = fast_create(Person)
  465 + target = fast_create(Person)
  466 + profile = sample_user
  467 +
  468 + task_one = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Task Test'})
  469 + task_two = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Another Task'})
  470 +
  471 + profile.tag(task_one, with: 'noosfero,test', on: :tags)
  472 + profile.tag(task_two, with: 'test', on: :tags)
  473 +
  474 + assert_includes task_one.tags_from(nil), 'test'
  475 + assert_not_includes task_two.tags_from(nil), 'noosfero'
  476 +
  477 + end
  478 +
443 protected 479 protected
444 480
445 def sample_user 481 def sample_user