Commit eb9790f649084129746fca12660ef1c33f9c9a81
1 parent
049fef28
Exists in
master
Add unit and functional tests for colab_integration plugin
Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com> Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Showing
3 changed files
with
141 additions
and
0 deletions
Show diff stats
test/functional/colab_integration_plugin_controller_test.rb
0 → 100644
... | ... | @@ -0,0 +1,46 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | +require File.dirname(__FILE__) + '/../../controllers/colab_integration_plugin_controller' | |
3 | + | |
4 | +class ColabIntegrationPluginController; def rescue_action(e) raise e end; end | |
5 | + | |
6 | +class ColabIntegrationPluginControllerTest < ActionController::TestCase | |
7 | + | |
8 | + def setup | |
9 | + @john = fast_create(Person, :name => "John Snow") | |
10 | + @arya = fast_create(Person, :name => "Arya Stark") | |
11 | + @joffrey = fast_create(Person, :name => "Joffrey Lannister") | |
12 | + | |
13 | + @stark = fast_create(Community, :name => "House Stark") | |
14 | + @stark.add_member @john | |
15 | + @stark.add_admin @arya | |
16 | + | |
17 | + @article = create(TinyMceArticle, :name => "The Night's Watch Oath", :body => "Night gathers, and now my watch begins...", :profile => @john) | |
18 | + | |
19 | + @game_of_thrones = fast_create(Community, :name => "Game of Thrones") | |
20 | + @game_of_thrones.add_member @john | |
21 | + @game_of_thrones.add_member @arya | |
22 | + @game_of_thrones.add_member @joffrey | |
23 | + end | |
24 | + | |
25 | + should "return a json with all information from the environment" do | |
26 | + get :index | |
27 | + | |
28 | + environment_data = JSON.parse(@response.body) | |
29 | + assert_equal environment_data["total"], 5 | |
30 | + | |
31 | + persons = environment_data["profiles"].select{ |profile| | |
32 | + profile["type"] == "Person" | |
33 | + } | |
34 | + assert_equal persons.count, 3 | |
35 | + | |
36 | + communities = environment_data["profiles"].select{ |profile| | |
37 | + profile["type"] == "Community" | |
38 | + } | |
39 | + assert_equal communities.count, 2 | |
40 | + | |
41 | + persons_with_article = persons.select{ |person| | |
42 | + person["articles-count"] > 0 | |
43 | + } | |
44 | + assert_equal persons_with_article.count, 1 | |
45 | + end | |
46 | +end | ... | ... |
... | ... | @@ -0,0 +1,27 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | + | |
3 | +class ArticleTest < ActiveSupport::TestCase | |
4 | + def setup | |
5 | + @john = fast_create(Person, :name => "John Snow") | |
6 | + end | |
7 | + | |
8 | + should 'get the attributes of John TinyMceArticle' do | |
9 | + lord = fast_create(Person, :name => "Lord Commander") | |
10 | + article = create(TinyMceArticle, :name => "The Night's Watch Oath", :body => "Night gathers, and now my watch begins...", :profile => @john, :author => lord) | |
11 | + | |
12 | + attributes = article.attr_to_hash | |
13 | + | |
14 | + assert_equal attributes["type"], "TinyMceArticle" | |
15 | + assert_equal attributes["data"]["title"], "The Night's Watch Oath" | |
16 | + assert_equal attributes["data"]["author_id"], lord.id | |
17 | + end | |
18 | + | |
19 | + should 'get the attributes of John Event' do | |
20 | + article = create(Event, :name => "Run Away", :body => "...", :profile => @john) | |
21 | + | |
22 | + attributes = article.attr_to_hash | |
23 | + | |
24 | + assert_equal attributes["type"], "Event" | |
25 | + assert_equal attributes["data"]["title"], "Run Away" | |
26 | + end | |
27 | +end | ... | ... |
... | ... | @@ -0,0 +1,68 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | + | |
3 | +class CommunityTest < ActiveSupport::TestCase | |
4 | + def setup | |
5 | + @communityA = fast_create(Community, :name => "Community A") | |
6 | + @john = fast_create(Person, :name => "John Snow") | |
7 | + @arya = fast_create(Person, :name => "Arya Stark") | |
8 | + @joffrey = fast_create(Person, :name => "Joffrey Lannister") | |
9 | + | |
10 | + @communityA.add_member @john | |
11 | + @communityA.add_admin @arya | |
12 | + end | |
13 | + | |
14 | + should "get list of members on community A" do | |
15 | + attributes = @communityA.attr_to_hash | |
16 | + | |
17 | + assert_equal attributes["members-count"], 2 | |
18 | + assert_equal attributes["members"].count, 2 | |
19 | + | |
20 | + member = attributes["members"].select { |member| | |
21 | + member["name"] == "Arya Stark" | |
22 | + } | |
23 | + | |
24 | + assert_equal member.count, 1 | |
25 | + assert member.first["is_admin"] | |
26 | + end | |
27 | + | |
28 | + should "get software info from community A" do | |
29 | + environment = Environment.default | |
30 | + environment.enabled_plugins = ['MpogSoftwarePlugin'] | |
31 | + environment.add_admin(@arya) | |
32 | + environment.save | |
33 | + | |
34 | + thrones_the_game = SoftwareInfo.new | |
35 | + thrones_the_game.community_id = @communityA.id | |
36 | + thrones_the_game.public_software = true | |
37 | + | |
38 | + license_gpl = LicenseInfo.create( | |
39 | + :version=>"CC-GPL-V2", | |
40 | + :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt" | |
41 | + ) | |
42 | + thrones_the_game.license_info = license_gpl | |
43 | + | |
44 | + software = Category.create(:name => _("Software"), :environment => environment) | |
45 | + categories = [] | |
46 | + categories << Category.create(:name => "TBS", :environment => environment, :parent => software) | |
47 | + categories << Category.create(:name => "War", :environment => environment, :parent => software) | |
48 | + thrones_the_game.community.categories << categories | |
49 | + | |
50 | + thrones_the_game.save | |
51 | + | |
52 | + attributes = @communityA.attr_to_hash | |
53 | + | |
54 | + assert attributes.has_key?("software_data") | |
55 | + assert_equal attributes["software_data"]["public_software"], true | |
56 | + assert_equal attributes["software_data"]["acronym"], "" | |
57 | + | |
58 | + assert attributes["software_data"].has_key?("license_info") | |
59 | + assert_equal attributes["software_data"]["license_info"]["version"], "CC-GPL-V2" | |
60 | + | |
61 | + found_category = attributes["software_data"]["categories"].select { |category| | |
62 | + category["name"] == "TBS" | |
63 | + } | |
64 | + assert_equal attributes["software_data"]["categories"].count, 2 | |
65 | + assert_equal found_category.count, 1 | |
66 | + assert_equal found_category.first["name"], "TBS" | |
67 | + end | |
68 | +end | ... | ... |