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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 |