Commit 0b2f641ead14f1d2b39b840b21c1575c1dde548b

Authored by Paulo Meireles
1 parent 37d94bf1

[Mezuro] Moving acceptance tests to plugin root dir

plugins/mezuro/features/adding_metric_configuration.feature 0 → 100644
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
  1 +Feature: Add metric configuration to a configuration
  2 + As a mezuro user
  3 + I want to add metric configurations to a Kalibro configuration
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 + And I go to the Control panel
  12 + And I create a Mezuro configuration with the following data
  13 + | Title | My Configuration |
  14 + | Description | A sample description |
  15 +
  16 + Scenario: adding a native metric configuration
  17 + When I follow "Add metric"
  18 + And I follow "Analizo"
  19 + And I follow "Lines of Code"
  20 + And I fill in the following:
  21 + | Code: | Sample Code |
  22 + | Weight: | 10.0 |
  23 + And I select "Average" from "Aggregation Form:"
  24 + And I press "Add"
  25 + Then I should see "Lines of Code"
  26 + And I should see "Analizo"
  27 + And I should see "Sample Code"
  28 +
  29 + Scenario: adding a native metric configuration without code
  30 + When I follow "Add metric"
  31 + And I follow "Analizo"
  32 + And I follow "Number of Children"
  33 + And I don't fill anything
  34 + And I press "Add"
  35 + Then I should be at the url "/myprofile/my-community/plugin/mezuro/new_metric_configuration"
  36 +
  37 + Scenario: adding a compound metric configuration
  38 + When I follow "Add Metric"
  39 + And I follow "New Compound Metric"
  40 + And I fill in the following:
  41 + | Name: | Compound sample |
  42 + | Description: | 10.0 |
  43 + | Script: | return 42; |
  44 + | Code: | anyCode |
  45 + | Weight: | 10.0 |
  46 + And I select "Class" from "Scope:"
  47 + And I select "Average" from "Aggregation Form:"
  48 + And I press "Add"
  49 + Then I should see "Compound sample"
  50 +
  51 + Scenario: adding a compound metric configuration with invalid script
  52 + When I follow "Add metric"
  53 + And I follow "New Compound Metric"
  54 + And I fill in the following:
  55 + | Name: | Compound sample |
  56 + | Description: | 10.0 |
  57 + | Script: | invalid script |
  58 + | Code: | anyCode |
  59 + | Weight: | 10.0 |
  60 + And I select "Class" from "Scope:"
  61 + And I select "Average" from "Aggregation Form:"
  62 + And I press "Add"
  63 + Then I should see "Metric with invalid code or script: invalid script"
plugins/mezuro/features/adding_ranges.feature 0 → 100644
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
  1 +Feature: Add range to a metric configuration
  2 + As a mezuro user
  3 + I want to add ranges to a Kalibro metric configuration
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 + And I go to the Control Panel
  12 + And I create a Mezuro configuration with the following data
  13 + | Title | My Configuration |
  14 + | Description | A sample description |
  15 + And I follow "Add Metric"
  16 + And I follow "Analizo"
  17 + And I follow "Lines of Code"
  18 + And I fill in the following:
  19 + | Code: | Sample Code |
  20 + | Weight: | 10.0 |
  21 + And I select "Average" from "Aggregation Form:"
  22 + And I press "Add"
  23 +
  24 + Scenario: adding a range to a metric configuration
  25 + When I follow "New Range" and wait
  26 + And I fill in the following:
  27 + | (*) Label: | label |
  28 + | (*) Beginning: | 1 |
  29 + | (*) End: | 10 |
  30 + | (*) Grade: | 100 |
  31 + | (*) Color: | FF00FF |
  32 + | Comments: | Comentário |
  33 + And I press "Save Range" and wait
  34 + Then I should see "label" within "#ranges"
  35 +
  36 + Scenario: adding a range with invalid beginning field
  37 + When I follow "New Range" and wait
  38 + And I fill in the following:
  39 + | (*) Label: | label |
  40 + | (*) Beginning: | teste |
  41 + | (*) End: | 10 |
  42 + | (*) Grade: | 100 |
  43 + | (*) Color: | FF00FF |
  44 + | Comments: | Comentário |
  45 + And I press "Save Range" and wait
  46 + Then I should see "Beginning, End and Grade must be numeric values." inside an alert
  47 +
  48 + Scenario: adding a range with beginning greater than end
  49 + When I follow "New Range" and wait
  50 + And I fill in the following:
  51 + | (*) Label: | label |
  52 + | (*) Beginning: | 100 |
  53 + | (*) End: | 10 |
  54 + | (*) Grade: | 100 |
  55 + | (*) Color: | FF00FF |
  56 + | Comments: | Comentário |
  57 + And I press "Save Range" and wait
  58 + Then I should see "End must be greater than Beginning." inside an alert
  59 +
  60 + Scenario: adding a range with no parameters
  61 + When I follow "New Range" and wait
  62 + And I dont't fill anything
  63 + And I press "Save Range" and wait
  64 + Then I should see "Please fill all fields marked with (*)." inside an alert
plugins/mezuro/features/creating_configuration.feature 0 → 100644
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
  1 +Feature: Create configuration
  2 + As a mezuro user
  3 + I want to create a Mezuro configuration
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 +
  12 + Scenario: I see Mezuro Configuration on my control panel
  13 + When I go to the Control panel
  14 + Then I should see "Mezuro configuration"
  15 +
  16 + Scenario: creating with valid attributes
  17 + When I go to the Control panel
  18 + And I create a Mezuro configuration with the following data
  19 + | Title | Qt_Calculator |
  20 + | Description | A sample description |
  21 + Then I should see "Name"
  22 + And I should see "Qt_Calculator"
  23 + And I should see "Description"
  24 + And I should see "A sample description"
  25 +
  26 + Scenario: creating with duplicated name
  27 + When I go to the Control panel
  28 + And I create a Mezuro configuration with the following data
  29 + | Title | Original Title |
  30 + And I go to the Control panel
  31 + And I create a Mezuro configuration with the following data
  32 + | Title | Original Title |
  33 + Then I should see "1 error prohibited this article from being saved"
  34 +
  35 + Scenario: creating without title
  36 + When I go to the Control panel
  37 + And I create a Mezuro configuration with the following data
  38 + | Title | |
  39 + Then I should see "1 error prohibited this article from being saved"
  40 +
plugins/mezuro/features/creating_project.feature 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +Feature: Create project
  2 + As a mezuro user
  3 + I want to create a Mezuro project
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 + And the following community
  12 + | identifier | name |
  13 + | mycommunity | My Community |
  14 + And "Joao Silva" is admin of "My Community"
  15 +
  16 + Scenario: I see Mezuro project's input form
  17 + Given I am on My Community's control panel
  18 + When I follow "Mezuro Project"
  19 + Then I should see "Title"
  20 + And I should see "License"
  21 + And I should see "Repository type"
  22 + And I should see "GIT"
  23 + And I should see "REMOTE_ZIP"
  24 + And I should see "REMOTE_TARBALL"
  25 + And I should see "SUBVERSION"
  26 + And I should see "Repository url"
  27 + And I should see "Configuration"
  28 + And I should see "Kalibro for Java"
  29 +
  30 + Scenario: I create a Mezuro project with valid attributes
  31 + Given I am on My Community's control panel
  32 + When I create a Mezuro project with the following data
  33 + | Title | Sample Project |
  34 + | License | GPL |
  35 + | Repository type | SUBVERSION |
  36 + | Repository url | https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator |
  37 + | Configuration | Kalibro for Java |
  38 + Then I should see "Sample Project"
  39 + And I should see "GPL"
  40 + And I should see "SUBVERSION"
  41 + And I should see "https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator"
  42 + And I should see "Kalibro for Java"
  43 + And I directly delete content with name "Sample Project" for testing purposes
  44 +
  45 + Scenario: I can't create a Mezuro project with invalid attributes
  46 + Given I am on My Community's control panel
  47 + When I create a Mezuro project with the following data
  48 + | Title | |
  49 + | License | GPL |
  50 + | Repository type | SUBVERSION |
  51 + | Repository url | |
  52 + | Configuration | Kalibro for Java |
  53 + Then I should see "Title can't be blank"
  54 + And I should see "Missing repository url"
plugins/mezuro/features/echo_port_test.rb 0 → 100644
@@ -0,0 +1,90 @@ @@ -0,0 +1,90 @@
  1 +require "test_helper"
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
  5 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
  6 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
  7 +
  8 +class EchoPortTest < ActiveSupport::TestCase
  9 +
  10 + def setup
  11 + @port = Kalibro::Client::Port.new('Echo')
  12 + address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yml")
  13 + address['KalibroService'] = 'KalibroFake'
  14 + @port.service_address=(address);
  15 + end
  16 +
  17 + should 'echo base tool' do
  18 + test BaseToolFixtures.analizo, 'BaseTool' do |base_tool|
  19 + base_tool.name = "echo " + base_tool.name
  20 + end
  21 + end
  22 +
  23 + should 'echo configuration' do
  24 + test ConfigurationFixtures.kalibro_configuration, 'Configuration' do |configuration|
  25 + configuration.name = "echo " + configuration.name
  26 + end
  27 + end
  28 +
  29 + should 'echo metric configuration' do
  30 + test_metric_configuration(MetricConfigurationFixtures.amloc_configuration)
  31 + test_metric_configuration(MetricConfigurationFixtures.sc_configuration)
  32 + end
  33 +
  34 + should 'echo module result' do
  35 + test ModuleResultFixtures.create, 'ModuleResult' do |module_result|
  36 + module_result.module.name = "echo." + module_result.module.name
  37 + end
  38 + end
  39 +
  40 + should 'echo project' do
  41 + test(ProjectFixtures.qt_calculator, 'Project') do |project|
  42 + project.name = "echo " + project.name
  43 + end
  44 + end
  45 +
  46 + should 'echo project result' do
  47 + test(ProjectResultFixtures.qt_calculator, 'ProjectResult') do |project_result|
  48 + project_result.project.name = "echo " + project_result.project.name
  49 + end
  50 + end
  51 +
  52 + should 'echo raw project' do
  53 + project = ProjectFixtures.qt_calculator
  54 + echoed = @port.request(:echo_raw_project, {:project => project.to_hash})[:project]
  55 + project.name = "echo " + project.name
  56 + project.state = nil
  57 + project.error = nil
  58 + assert_equal project, Kalibro::Entities::Project.from_hash(echoed)
  59 + end
  60 +
  61 + should 'work with enums' do
  62 + test_granularity("METHOD", "CLASS")
  63 + test_granularity("CLASS", "PACKAGE")
  64 + test_granularity("PACKAGE", "PACKAGE")
  65 + test_granularity("APPLICATION", "APPLICATION")
  66 + end
  67 +
  68 + private
  69 +
  70 + def test_metric_configuration(fixture)
  71 + test fixture, 'MetricConfiguration' do |metric_configuration|
  72 + metric_configuration.code = "echo_" + metric_configuration.code
  73 + end
  74 + end
  75 +
  76 + def test(fixture, entity_name)
  77 + entity_symbol = entity_name.underscore.to_sym
  78 + request_body = {entity_symbol => fixture.to_hash}
  79 + echoed = @port.request("echo_#{entity_symbol}".to_sym, request_body)[entity_symbol]
  80 + yield fixture
  81 + entity_class = "Kalibro::Entities::#{entity_name}".constantize
  82 + assert_equal fixture, entity_class.from_hash(echoed)
  83 + end
  84 +
  85 + def test_granularity(granularity, parent)
  86 + body = {:granularity => granularity}
  87 + assert_equal parent, @port.request(:infer_parent_granularity, body)[:parent_granularity]
  88 + end
  89 +
  90 +end
plugins/mezuro/features/editing_configuration.feature 0 → 100644
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +Feature: editing a configuration
  2 + As a mezuro user
  3 + I want to edit a Kalibro configuration
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 + And the following community
  12 + | identifier | name |
  13 + | mycommunity | My Community |
  14 + And "Joao Silva" is admin of "My Community"
  15 + And I am on My Community's cms
  16 + And I create a content of type "Kalibro configuration" with the following data
  17 + | Title | My Configuration |
  18 + | Description | A sample description |
  19 + And I follow "Add metric"
  20 + And I follow "Analizo"
  21 + And I follow "Lines of Code"
  22 + And I fill in the following:
  23 + | Code: | SampleCode |
  24 + | Weight: | 10.0 |
  25 + And I select "Average" from "Aggregation Form:"
  26 + And I press "Add"
  27 + And I press "Save" and wait
  28 +
  29 + Scenario: Keep metrics after editing configuration
  30 + When I follow "Edit" within "article-actions" and wait
  31 + And I press "Save"
  32 + Then I should see "Lines of Code"
  33 +
  34 + #FIXME: Create new step for this scenario
  35 + Scenario: Check if title is edit-disabled
  36 + When I follow "Edit" within "article-actions" and wait
  37 + And I fill in the following:
  38 + | Title | Some Title |
  39 + And I press "Save" and wait
  40 + Then I should not see "Some Title"
  41 +
  42 +
  43 + Scenario: Check if description is edit-enabled
  44 + When I follow "Edit" within "article-actions" and wait
  45 + And I fill in the following:
  46 + | Description | Some Description |
  47 + And I press "Save" and wait
  48 + Then I should see "Some Description"
  49 + And I should see "Lines of Code"
plugins/mezuro/features/removing_metric_configuration.feature 0 → 100644
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
  1 +Feature: Remove a metric configuration from a configuration
  2 + As a mezuro user
  3 + I want to remove metric configurations from a configuration
  4 +
  5 + Background:
  6 + Given the following users
  7 + | login | name |
  8 + | joaosilva | Joao Silva |
  9 + And I am logged in as "joaosilva"
  10 + And "Mezuro" plugin is enabled
  11 + And the following community
  12 + | identifier | name |
  13 + | mycommunity | My Community |
  14 + And "Joao Silva" is admin of "My Community"
  15 + And I am on My Community's cms
  16 + And I create a content of type "Kalibro configuration" with the following data
  17 + | Title | My Configuration |
  18 + | Description | A sample description |
  19 + When I follow "Add metric"
  20 + And I follow "Analizo"
  21 + And I follow "Lines of Code"
  22 + And I fill in the following:
  23 + | Code: | Sample Code |
  24 + | Weight: | 10.0 |
  25 + And I select "Average" from "Aggregation Form:"
  26 + And I press "Add"
  27 + And I press "Save"
  28 + And I should see "Lines of Code"
  29 +
  30 + Scenario: I remove a metric configuration
  31 + When I follow "Remove"
  32 + Then I should not see "Lines of Code"
plugins/mezuro/test/features/adding_metric_configuration.feature
@@ -1,63 +0,0 @@ @@ -1,63 +0,0 @@
1 -Feature: Add metric configuration to a configuration  
2 - As a mezuro user  
3 - I want to add metric configurations to a Kalibro configuration  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 - And I go to the Control panel  
12 - And I create a Mezuro configuration with the following data  
13 - | Title | My Configuration |  
14 - | Description | A sample description |  
15 -  
16 - Scenario: adding a native metric configuration  
17 - When I follow "Add metric"  
18 - And I follow "Analizo"  
19 - And I follow "Lines of Code"  
20 - And I fill in the following:  
21 - | Code: | Sample Code |  
22 - | Weight: | 10.0 |  
23 - And I select "Average" from "Aggregation Form:"  
24 - And I press "Add"  
25 - Then I should see "Lines of Code"  
26 - And I should see "Analizo"  
27 - And I should see "Sample Code"  
28 -  
29 - Scenario: adding a native metric configuration without code  
30 - When I follow "Add metric"  
31 - And I follow "Analizo"  
32 - And I follow "Number of Children"  
33 - And I don't fill anything  
34 - And I press "Add"  
35 - Then I should be at the url "/myprofile/my-community/plugin/mezuro/new_metric_configuration"  
36 -  
37 - Scenario: adding a compound metric configuration  
38 - When I follow "Add Metric"  
39 - And I follow "New Compound Metric"  
40 - And I fill in the following:  
41 - | Name: | Compound sample |  
42 - | Description: | 10.0 |  
43 - | Script: | return 42; |  
44 - | Code: | anyCode |  
45 - | Weight: | 10.0 |  
46 - And I select "Class" from "Scope:"  
47 - And I select "Average" from "Aggregation Form:"  
48 - And I press "Add"  
49 - Then I should see "Compound sample"  
50 -  
51 - Scenario: adding a compound metric configuration with invalid script  
52 - When I follow "Add metric"  
53 - And I follow "New Compound Metric"  
54 - And I fill in the following:  
55 - | Name: | Compound sample |  
56 - | Description: | 10.0 |  
57 - | Script: | invalid script |  
58 - | Code: | anyCode |  
59 - | Weight: | 10.0 |  
60 - And I select "Class" from "Scope:"  
61 - And I select "Average" from "Aggregation Form:"  
62 - And I press "Add"  
63 - Then I should see "Metric with invalid code or script: invalid script"  
plugins/mezuro/test/features/adding_ranges.feature
@@ -1,64 +0,0 @@ @@ -1,64 +0,0 @@
1 -Feature: Add range to a metric configuration  
2 - As a mezuro user  
3 - I want to add ranges to a Kalibro metric configuration  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 - And I go to the Control Panel  
12 - And I create a Mezuro configuration with the following data  
13 - | Title | My Configuration |  
14 - | Description | A sample description |  
15 - And I follow "Add Metric"  
16 - And I follow "Analizo"  
17 - And I follow "Lines of Code"  
18 - And I fill in the following:  
19 - | Code: | Sample Code |  
20 - | Weight: | 10.0 |  
21 - And I select "Average" from "Aggregation Form:"  
22 - And I press "Add"  
23 -  
24 - Scenario: adding a range to a metric configuration  
25 - When I follow "New Range" and wait  
26 - And I fill in the following:  
27 - | (*) Label: | label |  
28 - | (*) Beginning: | 1 |  
29 - | (*) End: | 10 |  
30 - | (*) Grade: | 100 |  
31 - | (*) Color: | FF00FF |  
32 - | Comments: | Comentário |  
33 - And I press "Save Range" and wait  
34 - Then I should see "label" within "#ranges"  
35 -  
36 - Scenario: adding a range with invalid beginning field  
37 - When I follow "New Range" and wait  
38 - And I fill in the following:  
39 - | (*) Label: | label |  
40 - | (*) Beginning: | teste |  
41 - | (*) End: | 10 |  
42 - | (*) Grade: | 100 |  
43 - | (*) Color: | FF00FF |  
44 - | Comments: | Comentário |  
45 - And I press "Save Range" and wait  
46 - Then I should see "Beginning, End and Grade must be numeric values." inside an alert  
47 -  
48 - Scenario: adding a range with beginning greater than end  
49 - When I follow "New Range" and wait  
50 - And I fill in the following:  
51 - | (*) Label: | label |  
52 - | (*) Beginning: | 100 |  
53 - | (*) End: | 10 |  
54 - | (*) Grade: | 100 |  
55 - | (*) Color: | FF00FF |  
56 - | Comments: | Comentário |  
57 - And I press "Save Range" and wait  
58 - Then I should see "End must be greater than Beginning." inside an alert  
59 -  
60 - Scenario: adding a range with no parameters  
61 - When I follow "New Range" and wait  
62 - And I dont't fill anything  
63 - And I press "Save Range" and wait  
64 - Then I should see "Please fill all fields marked with (*)." inside an alert  
plugins/mezuro/test/features/creating_configuration.feature
@@ -1,40 +0,0 @@ @@ -1,40 +0,0 @@
1 -Feature: Create configuration  
2 - As a mezuro user  
3 - I want to create a Mezuro configuration  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 -  
12 - Scenario: I see Mezuro Configuration on my control panel  
13 - When I go to the Control panel  
14 - Then I should see "Mezuro configuration"  
15 -  
16 - Scenario: creating with valid attributes  
17 - When I go to the Control panel  
18 - And I create a Mezuro configuration with the following data  
19 - | Title | Qt_Calculator |  
20 - | Description | A sample description |  
21 - Then I should see "Name"  
22 - And I should see "Qt_Calculator"  
23 - And I should see "Description"  
24 - And I should see "A sample description"  
25 -  
26 - Scenario: creating with duplicated name  
27 - When I go to the Control panel  
28 - And I create a Mezuro configuration with the following data  
29 - | Title | Original Title |  
30 - And I go to the Control panel  
31 - And I create a Mezuro configuration with the following data  
32 - | Title | Original Title |  
33 - Then I should see "1 error prohibited this article from being saved"  
34 -  
35 - Scenario: creating without title  
36 - When I go to the Control panel  
37 - And I create a Mezuro configuration with the following data  
38 - | Title | |  
39 - Then I should see "1 error prohibited this article from being saved"  
40 -  
plugins/mezuro/test/features/creating_project.feature
@@ -1,54 +0,0 @@ @@ -1,54 +0,0 @@
1 -Feature: Create project  
2 - As a mezuro user  
3 - I want to create a Mezuro project  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 - And the following community  
12 - | identifier | name |  
13 - | mycommunity | My Community |  
14 - And "Joao Silva" is admin of "My Community"  
15 -  
16 - Scenario: I see Mezuro project's input form  
17 - Given I am on My Community's control panel  
18 - When I follow "Mezuro Project"  
19 - Then I should see "Title"  
20 - And I should see "License"  
21 - And I should see "Repository type"  
22 - And I should see "GIT"  
23 - And I should see "REMOTE_ZIP"  
24 - And I should see "REMOTE_TARBALL"  
25 - And I should see "SUBVERSION"  
26 - And I should see "Repository url"  
27 - And I should see "Configuration"  
28 - And I should see "Kalibro for Java"  
29 -  
30 - Scenario: I create a Mezuro project with valid attributes  
31 - Given I am on My Community's control panel  
32 - When I create a Mezuro project with the following data  
33 - | Title | Sample Project |  
34 - | License | GPL |  
35 - | Repository type | SUBVERSION |  
36 - | Repository url | https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator |  
37 - | Configuration | Kalibro for Java |  
38 - Then I should see "Sample Project"  
39 - And I should see "GPL"  
40 - And I should see "SUBVERSION"  
41 - And I should see "https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator"  
42 - And I should see "Kalibro for Java"  
43 - And I directly delete content with name "Sample Project" for testing purposes  
44 -  
45 - Scenario: I can't create a Mezuro project with invalid attributes  
46 - Given I am on My Community's control panel  
47 - When I create a Mezuro project with the following data  
48 - | Title | |  
49 - | License | GPL |  
50 - | Repository type | SUBVERSION |  
51 - | Repository url | |  
52 - | Configuration | Kalibro for Java |  
53 - Then I should see "Title can't be blank"  
54 - And I should see "Missing repository url"  
plugins/mezuro/test/features/echo_port_test.rb
@@ -1,90 +0,0 @@ @@ -1,90 +0,0 @@
1 -require "test_helper"  
2 -  
3 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures"  
4 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"  
5 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"  
6 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"  
7 -  
8 -class EchoPortTest < ActiveSupport::TestCase  
9 -  
10 - def setup  
11 - @port = Kalibro::Client::Port.new('Echo')  
12 - address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yml")  
13 - address['KalibroService'] = 'KalibroFake'  
14 - @port.service_address=(address);  
15 - end  
16 -  
17 - should 'echo base tool' do  
18 - test BaseToolFixtures.analizo, 'BaseTool' do |base_tool|  
19 - base_tool.name = "echo " + base_tool.name  
20 - end  
21 - end  
22 -  
23 - should 'echo configuration' do  
24 - test ConfigurationFixtures.kalibro_configuration, 'Configuration' do |configuration|  
25 - configuration.name = "echo " + configuration.name  
26 - end  
27 - end  
28 -  
29 - should 'echo metric configuration' do  
30 - test_metric_configuration(MetricConfigurationFixtures.amloc_configuration)  
31 - test_metric_configuration(MetricConfigurationFixtures.sc_configuration)  
32 - end  
33 -  
34 - should 'echo module result' do  
35 - test ModuleResultFixtures.create, 'ModuleResult' do |module_result|  
36 - module_result.module.name = "echo." + module_result.module.name  
37 - end  
38 - end  
39 -  
40 - should 'echo project' do  
41 - test(ProjectFixtures.qt_calculator, 'Project') do |project|  
42 - project.name = "echo " + project.name  
43 - end  
44 - end  
45 -  
46 - should 'echo project result' do  
47 - test(ProjectResultFixtures.qt_calculator, 'ProjectResult') do |project_result|  
48 - project_result.project.name = "echo " + project_result.project.name  
49 - end  
50 - end  
51 -  
52 - should 'echo raw project' do  
53 - project = ProjectFixtures.qt_calculator  
54 - echoed = @port.request(:echo_raw_project, {:project => project.to_hash})[:project]  
55 - project.name = "echo " + project.name  
56 - project.state = nil  
57 - project.error = nil  
58 - assert_equal project, Kalibro::Entities::Project.from_hash(echoed)  
59 - end  
60 -  
61 - should 'work with enums' do  
62 - test_granularity("METHOD", "CLASS")  
63 - test_granularity("CLASS", "PACKAGE")  
64 - test_granularity("PACKAGE", "PACKAGE")  
65 - test_granularity("APPLICATION", "APPLICATION")  
66 - end  
67 -  
68 - private  
69 -  
70 - def test_metric_configuration(fixture)  
71 - test fixture, 'MetricConfiguration' do |metric_configuration|  
72 - metric_configuration.code = "echo_" + metric_configuration.code  
73 - end  
74 - end  
75 -  
76 - def test(fixture, entity_name)  
77 - entity_symbol = entity_name.underscore.to_sym  
78 - request_body = {entity_symbol => fixture.to_hash}  
79 - echoed = @port.request("echo_#{entity_symbol}".to_sym, request_body)[entity_symbol]  
80 - yield fixture  
81 - entity_class = "Kalibro::Entities::#{entity_name}".constantize  
82 - assert_equal fixture, entity_class.from_hash(echoed)  
83 - end  
84 -  
85 - def test_granularity(granularity, parent)  
86 - body = {:granularity => granularity}  
87 - assert_equal parent, @port.request(:infer_parent_granularity, body)[:parent_granularity]  
88 - end  
89 -  
90 -end  
plugins/mezuro/test/features/editing_configuration.feature
@@ -1,49 +0,0 @@ @@ -1,49 +0,0 @@
1 -Feature: editing a configuration  
2 - As a mezuro user  
3 - I want to edit a Kalibro configuration  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 - And the following community  
12 - | identifier | name |  
13 - | mycommunity | My Community |  
14 - And "Joao Silva" is admin of "My Community"  
15 - And I am on My Community's cms  
16 - And I create a content of type "Kalibro configuration" with the following data  
17 - | Title | My Configuration |  
18 - | Description | A sample description |  
19 - And I follow "Add metric"  
20 - And I follow "Analizo"  
21 - And I follow "Lines of Code"  
22 - And I fill in the following:  
23 - | Code: | SampleCode |  
24 - | Weight: | 10.0 |  
25 - And I select "Average" from "Aggregation Form:"  
26 - And I press "Add"  
27 - And I press "Save" and wait  
28 -  
29 - Scenario: Keep metrics after editing configuration  
30 - When I follow "Edit" within "article-actions" and wait  
31 - And I press "Save"  
32 - Then I should see "Lines of Code"  
33 -  
34 - #FIXME: Create new step for this scenario  
35 - Scenario: Check if title is edit-disabled  
36 - When I follow "Edit" within "article-actions" and wait  
37 - And I fill in the following:  
38 - | Title | Some Title |  
39 - And I press "Save" and wait  
40 - Then I should not see "Some Title"  
41 -  
42 -  
43 - Scenario: Check if description is edit-enabled  
44 - When I follow "Edit" within "article-actions" and wait  
45 - And I fill in the following:  
46 - | Description | Some Description |  
47 - And I press "Save" and wait  
48 - Then I should see "Some Description"  
49 - And I should see "Lines of Code"  
plugins/mezuro/test/features/removing_metric_configuration.feature
@@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
1 -Feature: Remove a metric configuration from a configuration  
2 - As a mezuro user  
3 - I want to remove metric configurations from a configuration  
4 -  
5 - Background:  
6 - Given the following users  
7 - | login | name |  
8 - | joaosilva | Joao Silva |  
9 - And I am logged in as "joaosilva"  
10 - And "Mezuro" plugin is enabled  
11 - And the following community  
12 - | identifier | name |  
13 - | mycommunity | My Community |  
14 - And "Joao Silva" is admin of "My Community"  
15 - And I am on My Community's cms  
16 - And I create a content of type "Kalibro configuration" with the following data  
17 - | Title | My Configuration |  
18 - | Description | A sample description |  
19 - When I follow "Add metric"  
20 - And I follow "Analizo"  
21 - And I follow "Lines of Code"  
22 - And I fill in the following:  
23 - | Code: | Sample Code |  
24 - | Weight: | 10.0 |  
25 - And I select "Average" from "Aggregation Form:"  
26 - And I press "Add"  
27 - And I press "Save"  
28 - And I should see "Lines of Code"  
29 -  
30 - Scenario: I remove a metric configuration  
31 - When I follow "Remove"  
32 - Then I should not see "Lines of Code"