Commit e9371699d8dcb40f2230beae59d3d79a514231b1

Authored by Antonio Terceiro
1 parent f3a5d0e9

Remove mezuro plugin by request of its authors

Mezuro is now a standalone application.
Showing 181 changed files with 0 additions and 7634 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 181 files displayed.

plugins/mezuro/AUTHORS
... ... @@ -1,42 +0,0 @@
1   -Mezuro Authors
2   -==============
3   -
4   -Copyright 2010-2013
5   --------------------
6   -
7   - Almir Alves Pereira (almir.sne at gmail.com)
8   - Alessandro Palmeira (alessandro.palmeira at gmail.com)
9   - Andre Casimiro (ah.casimiro at gmail.com)
10   - Antonio Terceiro (terceiro at colivre.coop.br)
11   - Caio Salgado (caio.csalgado at gmail.com)
12   - Carlos Morais (carlos88morais at gmail.com)
13   - Daniel Alves (danpaulalves at gmail.com)
14   - Daniela Feitosa (daniela at colivre.coop.br)
15   - Diego Araújo (diegoamc90 at gmail.com)
16   - Everton Santos (everton2x4 at gmail.com)
17   - Guilherme Rojas (guilhermehrojas at gmail.com)
18   - Jefferson Fernandes (jeffs.fernandes at gmail.com)
19   - Joao Machini (joao.machini at gmail.com)
20   - João da Silva (jaodsilv@linux.ime.usp.br)
21   - Paulo Meirelles (paulo at softwarelivre.org)
22   - Pedro Leal (pedrombl at gmail.com)
23   - Rafael Manso (rr.manzo at gmail.com)
24   - Rafael Messias (rmmartins at gmail.com)
25   - Renan Teruo (renanteruoc at gmail.com)
26   - Rodrigo Souto (rodrigo at colivre.coop.br)
27   -
28   -Collaborators (from USP Lab XP course 2010 on another code)
29   ------------------------------------------------------------
30   -
31   - Ana Paula Oliveira dos Santos (anapaulao.santos at gmail.com)
32   - Lucianna Almeida (lucianna.th at gmail.com)
33   - Thiago Colucci (ticolucci at gmail.com)
34   - Vinicius Daros (vinicius.k.daros at gmail.com)
35   - Viviane Almeida Santos (viviane.almeida at gmail.com)
36   -
37   -Advisors
38   ---------
39   -
40   - Fabio Kon (fabio.kon at ime.usp.br)
41   - Alfredo Goldman (gold at ime.usp.br)
42   -
plugins/mezuro/README.md
... ... @@ -1,144 +0,0 @@
1   -README - Mezuro Plugin
2   -======================
3   -
4   -Mezuro is a source code tracking platform based on Noosfero social networking
5   -platform with Mezuro Plugin actived to access Kalibro Web Service.
6   -
7   -
8   -INSTALL
9   -=======
10   -
11   -Dependences
12   ------------
13   -
14   -See the Noosfero INSTALL (and HACKING) file. After install Noosfero, you must
15   -install Mezuro dependences:
16   -
17   -$ gem install --no-ri --no-rdoc nokogiri -v 1.5.0
18   -$ gem install --no-ri --no-rdoc wasabi -v 2.0.0
19   -$ gem install --no-ri --no-rdoc savon -v 0.9.7
20   -$ gem install --no-ri --no-rdoc googlecharts
21   -
22   -$ gem uninstall rack
23   -$ gem install --no-ri --no-rdoc rack -v 1.0.1
24   -
25   -
26   -*with RVM*
27   -
28   -if you want to use RVM (Ruby Version Manager) environment, just run:
29   -
30   -$ plugins/mezuro/script/install/install-rvm.sh
31   -
32   -
33   -Enable Mezuro Plugin
34   ---------------------
35   -
36   -Also, you need to enable Mezuro Plugin at your Noosfero installation:
37   -
38   -cd <your_noosfero_dir>
39   -./script/noosfero-plugins enable mezuro
40   -
41   -
42   -Install Service
43   ----------------
44   -
45   -To run Mezuro (Noosfero with Mezuro Plugin), you need to install the Kalibro
46   -Service. For that, see:
47   -https://gitorious.org/kalibro/kalibro/blobs/master/INSTALL
48   -
49   -
50   -Configure Service Address
51   --------------------------
52   -
53   -Addictionaly, copy service.yml.example to service.yml and define your Kalibro
54   -Service address:
55   -
56   -$ cd <your_noosfero_dir>/plugin/mezuro
57   -$ cp service.yml.example service.yml
58   -
59   -If you install Kalibro Service at localhost, just keep the default
60   -adress:
61   -
62   -http://localhost:8080/KalibroService/
63   -
64   -
65   -Set Licences list
66   ------------------
67   -
68   -$ cd <your_noosfero_dir>/plugin/mezuro
69   -$ cp licence.yml.example licence.yml
70   -
71   -
72   -Apply Mezuro Theme
73   ----------------------
74   -
75   -(Our RVM install script already do that)
76   -
77   -If you want, you can use the Mezuro default theme:
78   -
79   -$ cd public/designs/themes && rm -f default
80   -$ git clone git://gitorious.org/mezuro/mezuro-theme.git
81   -$ ln -s mezuro-theme/ default && cd ../../../
82   -
83   -
84   -Active Mezuro Plugin on Noosfero Environment
85   ---------------------------------------------
86   -
87   -As a Noosfero administrator user, go to administrator panel:
88   -
89   -- Click on "Enable/disable plugins" option
90   -- Click on "Mezuro Plugin" check-box
91   -
92   -
93   -DEVELOPMENT
94   -===========
95   -
96   -Get the Mezuro (Noosfero with Mezuro Plugin) development repository:
97   -
98   -$ git clone https://gitorious.org/+mezuro/noosfero/mezuro
99   -$ cd mezuro
100   -$ git checkout mezuro
101   -
102   -Running Mezuro tests
103   ---------------------
104   -
105   -$ rake test:noosfero_plugins:mezuro
106   -
107   -or just:
108   -
109   -$ rake test:noosfero_plugin_mezuro:units
110   -$ rake test:noosfero_plugin:mezuro:functionals
111   -
112   -
113   -Get Involved
114   -============
115   -
116   -If you found any bug and/or want to collaborate, please send an e-mail to
117   -paulo@softwarelivre.org
118   -
119   -
120   -LICENSE
121   -=======
122   -
123   -Copyright (c) The Author developers.
124   -
125   -See Noosfero license.
126   -
127   -
128   -AUTHORS
129   -=======
130   -
131   -Please, see the Mezuro AUTHORS file.
132   -
133   -
134   -ACKNOWLEDGMENTS
135   -===============
136   -
137   -The authors have been supported by organizations:
138   -
139   -University of São Paulo (USP)
140   -FLOSS Competence Center
141   -http://ccsl.ime.usp.br
142   -
143   -Brazilian National Research Council (CNPQ)
144   -http://www.cnpq.br/
plugins/mezuro/TODO
... ... @@ -1,73 +0,0 @@
1   -README/TODO do branch cucumber_tests
2   -
3   -Tarefas:
4   -- Escrever uma história (procurar uma já escrita) para isso
5   -- Descobrir o porquê dos erros nos testes do mezuro (repository_url)
6   -- Dar rebase com o mezuro-dev (os tais testes passam no mezuro-dev)
7   -- Fazer mais testes
8   -- Ver como/quando o selenium pode ser integrado ao projeto (conversar com noosfero/ talvez até tentar implementar alguma coisa??)
9   -
10   -
11   -Testes de aceitação a serem feitos: (* já feito)
12   -
13   -Projetos:
14   - Criar
15   - * correto
16   - * errado
17   - duplicado
18   - Editar
19   - correto
20   - errado
21   - Deletar(não precisa fazer - problema do noosfero)
22   -
23   -Configurações:
24   - criar
25   - *correta
26   - *errado (sem titulo)
27   - *duplicada
28   - editar - verificar se mantem as metricas
29   - correto
30   - não é possível mudar o titulo
31   - deletar (não precisa fazer - problema do noosfero)
32   - metricas:
33   - criar
34   - nativa:
35   - *correta
36   - *errada
37   - duplicada (é pra funcionar?)
38   - composta:
39   - *correta
40   - errada
41   - duplicada
42   - editar
43   - para metrica correta
44   - para metrica errada
45   - *deletar
46   - ranges:
47   - criar
48   - *range correto
49   - range errado
50   - todos os casos
51   - editar
52   - para range correto
53   - para range errado
54   - deletar
55   -
56   -Testes falhando:
57   -
58   -Arquivo adding_metric_configuration.feature:
59   - Scenario: adding a native metric configuration without code
60   - Precisa do selenium para ver em qual página está.
61   - Scenario: adding a compound metric configuration
62   - Scenario: adding a compound metric configuration with invalid script
63   - As métricas compostas não estão salvando direito.
64   -
65   -
66   -Arquivo creating_project.feature:
67   - Scenario: I create a Kalibro project with valid attributes
68   - ás vezes falha por erro de já existir na Kalibro. Esse erro teóricamente já havia sido resolvido.
69   -
70   -
71   -Arquivo adding_ranges.feature:
72   - Scenario: adding a range to a metric configuration
73   - Precisa do selenium para esperar a página carregar.
plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb
... ... @@ -1,109 +0,0 @@
1   -class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def choose_metric
6   - @configuration_content = profile.articles.find(params[:id])
7   - @base_tools = Kalibro::BaseTool.all
8   - end
9   -
10   - def new_native
11   - @configuration_content = profile.articles.find(params[:id])
12   - @reading_group_names_and_ids = reading_group_names_and_ids
13   - @metric = Kalibro::BaseTool.find_by_name(params[:base_tool_name]).metric params[:metric_name]
14   - @metric_configuration = Kalibro::MetricConfiguration.new :base_tool_name => params[:base_tool_name], :metric => @metric
15   - end
16   -
17   - def edit_native
18   - params_to_edit_view
19   - end
20   -
21   - def new_compound
22   - @configuration_content = profile.articles.find(params[:id])
23   - @metric_configurations = @configuration_content.metric_configurations
24   - @reading_group_names_and_ids = reading_group_names_and_ids
25   - metric = Kalibro::Metric.new :compound => true
26   - @metric_configuration = Kalibro::MetricConfiguration.new :metric => metric
27   - if configuration_content_has_errors?
28   - redirect_to_error_page @configuration_content.errors[:base]
29   - end
30   - end
31   -
32   - def edit_compound
33   - params_to_edit_view
34   - end
35   -
36   - def create
37   - configuration_content = profile.articles.find(params[:id])
38   - metric_configuration = Kalibro::MetricConfiguration.create(params[:metric_configuration])
39   -
40   - if metric_configuration_has_errors? metric_configuration
41   - redirect_to_error_page metric_configuration.errors[0].message
42   - else
43   - redirect_to(metric_configuration_url(configuration_content, metric_configuration.id))
44   - end
45   - end
46   -
47   - def update
48   - @configuration_content = profile.articles.find(params[:id])
49   - metric_configurations = @configuration_content.metric_configurations
50   - metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration][:id].to_i)
51   - metric_configuration.update_attributes params[:metric_configuration]
52   - if metric_configuration_has_errors? metric_configuration
53   - redirect_to_error_page metric_configuration.errors[0].message
54   - else
55   - redirect_to @configuration_content.view_url
56   - end
57   - end
58   -
59   - def remove
60   - configuration_content = profile.articles.find(params[:id])
61   - configuration_id = configuration_content.configuration_id
62   - metric_configuration = Kalibro::MetricConfiguration.new({:id => params[:metric_configuration_id].to_i})
63   - metric_configuration.destroy
64   - if metric_configuration_has_errors? metric_configuration
65   - redirect_to_error_page metric_configuration.errors[0].message
66   - else
67   - redirect_to configuration_content.view_url
68   - end
69   - end
70   -
71   - private
72   -
73   - def find_metric_configuration (metric_configurations, metric_configuration_id)
74   - metric_configurations.select {|metric_configuration| metric_configuration.id == metric_configuration_id }.first
75   - end
76   -
77   - def reading_group_names_and_ids
78   - array = Kalibro::ReadingGroup.all.map { |reading_group| [reading_group.name, reading_group.id] }
79   - array.sort { |x,y| x.first.downcase <=> y.first.downcase }
80   - end
81   -
82   - def metric_configuration_has_errors? metric_configuration
83   - not metric_configuration.errors.empty?
84   - end
85   -
86   - def configuration_content_has_errors?
87   - not @configuration_content.errors[:base].nil?
88   - end
89   -
90   - def metric_configuration_url(configuration_content, metric_configuration_id)
91   - url = configuration_content.view_url
92   - url[:controller] = controller_name
93   - url[:id] = configuration_content.id
94   - url[:metric_configuration_id] = metric_configuration_id
95   - url[:action] = (params[:metric_configuration][:metric][:compound] == "true" ? "edit_compound" : "edit_native")
96   - url
97   - end
98   -
99   - def params_to_edit_view
100   - @configuration_content = profile.articles.find(params[:id])
101   - @metric_configurations = @configuration_content.metric_configurations
102   - @metric_configuration = find_metric_configuration(@metric_configurations, params[:metric_configuration_id].to_i)
103   - @metric = @metric_configuration.metric
104   - @reading_group_names_and_ids = reading_group_names_and_ids
105   - @ranges = Kalibro::Range.ranges_of(@metric_configuration.id)
106   - end
107   -
108   -end
109   -
plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb
... ... @@ -1,29 +0,0 @@
1   -class MezuroPluginMyprofileController < ProfileController #MyprofileController?
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   -# rescue_from Exception do |exception|
6   -# @message = process_error_message exception.message
7   -# render :partial => "error_page"
8   -# end
9   -
10   - def error_page
11   - @message = params[:message]
12   - end
13   -
14   - protected
15   -
16   - def redirect_to_error_page(message)
17   - message = URI.escape(CGI.escape(process_error_message(message)),'.')
18   - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
19   - end
20   -
21   - def process_error_message message #FIXME
22   - if message =~ /bla/
23   - message
24   - else
25   - message
26   - end
27   - end
28   -
29   -end
plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
... ... @@ -1,66 +0,0 @@
1   -class MezuroPluginRangeController < MezuroPluginMyprofileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def new
6   - params_to_range_form
7   - params_to_redirect
8   - end
9   -
10   - def edit
11   - params_to_range_form
12   - ranges = Kalibro::Range.ranges_of params[:metric_configuration_id].to_i
13   - @range = (ranges.select { |range| range.id == params[:range_id].to_i }).first
14   - end
15   -
16   - def create
17   - params_to_redirect
18   - save_range
19   - end
20   -
21   - def update
22   - save_range
23   - end
24   -
25   - def remove
26   - configuration_content = profile.articles.find(params[:id])
27   - Kalibro::Range.new({:id => params[:range_id].to_i}).destroy
28   - redirect_to(metric_configuration_url(configuration_content))
29   - end
30   -
31   - private
32   -
33   - def metric_configuration_url configuration_content
34   - url = configuration_content.view_url
35   - url[:controller] = "mezuro_plugin_metric_configuration"
36   - url[:id] = configuration_content.id
37   - url[:metric_configuration_id] = params[:metric_configuration_id].to_i
38   - url[:action] = (params[:compound] ? "edit_compound" : "edit_native")
39   - url
40   - end
41   -
42   - def reading_labels_and_ids
43   - Kalibro::Reading.readings_of(params[:reading_group_id].to_i).map { |reading| [reading.label, reading.id] }
44   - end
45   -
46   - def save_range
47   - metric_configuration_id = params[:metric_configuration_id].to_i
48   - @range = Kalibro::Range.new params[:range]
49   - @range.save metric_configuration_id
50   - if !@range.errors.empty?
51   - @error = @range.errors[0].message
52   - end
53   - end
54   -
55   - def params_to_range_form
56   - @content_id = params[:id].to_i
57   - @metric_configuration_id = params[:metric_configuration_id].to_i
58   - @reading_labels_and_ids = reading_labels_and_ids
59   - end
60   -
61   - def params_to_redirect
62   - @reading_group_id = params[:reading_group_id].to_i
63   - @compound = params[:compound]
64   - end
65   -
66   -end
plugins/mezuro/controllers/myprofile/mezuro_plugin_reading_controller.rb
... ... @@ -1,48 +0,0 @@
1   -class MezuroPluginReadingController < MezuroPluginMyprofileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def new
6   - @reading_group_content = profile.articles.find(params[:id])
7   -
8   - readings = Kalibro::Reading.readings_of @reading_group_content.reading_group_id
9   - @parser="|*|"
10   - @labels_and_grades = readings.map {|reading| "#{reading.label}#{@parser}#{reading.grade}#{@parser}"}
11   - end
12   -
13   - def save
14   - reading_group_content = profile.articles.find(params[:id])
15   - reading = Kalibro::Reading.new params[:reading]
16   -
17   - if( reading.save )
18   - redirect_to reading_group_content.view_url
19   - else
20   - redirect_to_error_page reading.errors[0].message
21   - end
22   - end
23   -
24   - def edit
25   - @reading_group_content = profile.articles.find(params[:id])
26   - @reading = Kalibro::Reading.find params[:reading_id]
27   -
28   - readings = Kalibro::Reading.readings_of @reading_group_content.reading_group_id
29   - readings = readings.select {|reading| (reading.id != @reading.id)}
30   - @parser="|*|"
31   - @labels_and_grades = readings.map do |reading|
32   - if(reading.id != @reading.id)
33   - "#{reading.label}#{@parser}#{reading.grade}#{@parser}"
34   - end
35   - end
36   - end
37   -
38   - def destroy
39   - reading_group_content = profile.articles.find(params[:id])
40   - reading = Kalibro::Reading.find params[:reading_id]
41   - reading.destroy
42   - if( reading.errors.empty? )
43   - redirect_to reading_group_content.view_url
44   - else
45   - redirect_to_error_page reading.errors[0].message
46   - end
47   - end
48   -end
plugins/mezuro/controllers/profile/mezuro_plugin_module_result_controller.rb
... ... @@ -1,21 +0,0 @@
1   -class MezuroPluginModuleResultController < MezuroPluginProfileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def module_result
6   - @module_result = Kalibro::ModuleResult.find(params[:module_result_id].to_i)
7   - @metric_results = Kalibro::MetricResult.metric_results_of(@module_result.id)
8   - render :partial => 'module_result'
9   - end
10   -
11   - def metric_result_history
12   - @history = Kalibro::MetricResult.history_of(params[:metric_name], params[:module_result_id].to_i)
13   - render :partial => 'score_history'
14   - end
15   -
16   - def module_result_history
17   - @history = Kalibro::ModuleResult.history_of(params[:module_result_id].to_i)
18   - render :partial => 'score_history'
19   - end
20   -
21   -end
plugins/mezuro/controllers/profile/mezuro_plugin_processing_controller.rb
... ... @@ -1,34 +0,0 @@
1   -class MezuroPluginProcessingController < MezuroPluginProfileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def state
6   - processing = processing_for_date(params[:repository_id].to_i, params[:date])
7   - if processing.error.nil?
8   - render :text => processing.state
9   - else
10   - render :text => 'ERROR'
11   - end
12   - end
13   -
14   - def processing
15   - @processing = processing_for_date(params[:repository_id].to_i, params[:date])
16   - if @processing.error.nil?
17   - render :partial => 'processing'
18   - else
19   - render :partial => 'processing_error'
20   - end
21   - end
22   -
23   - private
24   -
25   - def processing_for_date(repository_id, date = nil)
26   - processing_class = Kalibro::Processing
27   - if date.nil?
28   - processing_class.processing_of(repository_id)
29   - else
30   - processing_class.processing_with_date_of(repository_id, date)
31   - end
32   - end
33   -
34   -end
plugins/mezuro/controllers/profile/mezuro_plugin_profile_controller.rb
... ... @@ -1,36 +0,0 @@
1   -#TODO Ver quais metodos precisam estar aqui e fazer os testes
2   -class MezuroPluginProfileController < ProfileController
3   -
4   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
5   -
6   -=begin
7   - rescue_from Exception do |exception|
8   - @message = process_error_message exception.message
9   - render :partial => "error_page"
10   - end
11   -
12   - def error_page
13   - @message = params[:message]
14   - end
15   -=end
16   - protected
17   -
18   - def process_error_message message
19   - if message =~ /undefined method `module' for nil:NilClass/
20   - "Kalibro did not return any result. Verify if the selected configuration is correct."
21   - else
22   - message
23   - end
24   - end
25   -
26   - def project_content_has_errors?
27   - not @content.errors[:base].nil?
28   - end
29   -
30   - def redirect_to_error_page(message)
31   - message = URI.escape(CGI.escape(process_error_message(message)),'.')
32   - redirect_to "/profile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
33   - end
34   -
35   -end
36   -
plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb
... ... @@ -1,65 +0,0 @@
1   -class MezuroPluginRepositoryController < MezuroPluginProfileController
2   -
3   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4   -
5   - def new
6   - params_repository_form
7   - end
8   -
9   - def edit
10   - params_repository_form
11   - @repository = @project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_i }.first
12   - end
13   -
14   - def save
15   - project_content = profile.articles.find(params[:id])
16   - repository = Kalibro::Repository.new( params[:repository] )
17   -
18   - if( repository.save )
19   - repository.process
20   - redirect_to(repository_url(project_content, repository.id))
21   - else
22   - redirect_to_error_page repository.errors[0].message
23   - end
24   - end
25   -
26   - def show
27   - @project_content = profile.articles.find(params[:id])
28   - @repository = @project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_i }.first
29   - @configuration_name = Kalibro::Configuration.find(@repository.configuration_id).name
30   - end
31   -
32   - def destroy
33   - project_content = profile.articles.find(params[:id])
34   - repository = Kalibro::Repository.new :id => params[:repository_id]
35   - repository.destroy
36   - if( repository.errors.empty? )
37   - redirect_to project_content.view_url
38   - else
39   - redirect_to_error_page repository.errors[0].message
40   - end
41   - end
42   -
43   - private
44   -
45   - def repository_url(project_content, repository_id)
46   - url = project_content.view_url
47   - url[:controller] = controller_name
48   - url[:id] = project_content.id
49   - url[:repository_id] = repository_id
50   - url[:action] = "show"
51   - url
52   - end
53   -
54   - def params_repository_form
55   - @project_content = profile.articles.find(params[:id])
56   - @repository_types = Kalibro::Repository.repository_types
57   -
58   - configurations = Kalibro::Configuration.all
59   - configurations = [] if (configurations.nil?)
60   - @configuration_select = configurations.map do |configuration|
61   - [configuration.name,configuration.id]
62   - end
63   - end
64   -
65   -end
plugins/mezuro/dependencies.rb
... ... @@ -1,3 +0,0 @@
1   -require 'rubygems'
2   -require 'savon'
3   -require 'googlecharts'
plugins/mezuro/features/configuration.feature
... ... @@ -1,158 +0,0 @@
1   -Feature: Configuration
2   - As a mezuro user
3   - I want to create, edit and remove a Mezuro configuration
4   -
5   - Background:
6   - Given the following users
7   - | login | name |
8   - | joaosilva | Joao Silva |
9   - Given I am logged in as "joaosilva"
10   - And "Mezuro" plugin is enabled
11   -
12   - Scenario: I see Mezuro configurantion's input form
13   - Given I am on joaosilva's control panel
14   - When I follow "Mezuro configuration"
15   - Then I should see "Title"
16   - And I should see "Description"
17   - And I should see "Clone Configuration"
18   -
19   - @selenium @kalibro_restart
20   - Scenario: I create a Mezuro configuration with valid attributes without cloning
21   - Given I am on joaosilva's control panel
22   - And I follow "Mezuro configuration"
23   - When I fill the fields with the new following data
24   - | article_name | Sample Configuration |
25   - | article_description | Sample Description |
26   - | article_configuration_to_clone_id | None |
27   - And I press "Save"
28   - Then I should see "Sample Configuration"
29   - And I should see "Sample Description"
30   - And I should see "Add Metric"
31   -
32   - @selenium @kalibro_restart
33   - Scenario: I create a Mezuro configuration with valid attributes with cloning
34   - Given I have a Mezuro configuration with the following data
35   - | name | Sample Configuration|
36   - | description | Sample Description |
37   - | user | joaosilva |
38   - And I have a Mezuro reading group with the following data
39   - | name | Sample Reading group |
40   - | description | Sample Description |
41   - | user | joaosilva |
42   - And I have a Mezuro metric configuration with previous created configuration and reading group
43   - And I am on joaosilva's control panel
44   - And I follow "Mezuro configuration"
45   - When I fill the fields with the new following data
46   - | article_name | Another Configuration |
47   - | article_description | Another Description |
48   - | article_configuration_to_clone_id | Sample Configuration |
49   - And I press "Save"
50   - Then I should see "Another Configuration"
51   - And I should see "Another Description"
52   - And I should see "Total Coupling Factor"
53   - And I should see "Add Metric"
54   -
55   - Scenario: I try to create a Mezuro configuration without title
56   - Given I am on joaosilva's control panel
57   - And I follow "Mezuro configuration"
58   - And the field "article_name" is empty
59   - When I press "Save"
60   - Then I should see "Title can't be blank"
61   -
62   - @kalibro_restart
63   - Scenario: I try to create a Mezuro configuration with title already in use
64   - Given I have a Mezuro configuration with the following data
65   - | name | Sample Configuration |
66   - | description | Sample Description |
67   - | user | joaosilva |
68   - And I am on joaosilva's control panel
69   - When I create a Mezuro configuration with the following data
70   - | Title | Sample Configuration |
71   - | Description | Sample Description |
72   - | Clone | None |
73   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
74   -
75   - @selenium @kalibro_restart
76   - Scenario: I see a Mezuro configuration edit form
77   - Given I have a Mezuro configuration with the following data
78   - | name | Sample Configuration |
79   - | description | Sample Description |
80   - | user | joaosilva |
81   - And I am on article "Sample Configuration"
82   - When I follow "Edit"
83   - Then I should see "Sample Configuration" in the "article_name"
84   - And I should see "Sample Description" in the "article_description"
85   - And I should see "Save" button
86   -
87   - @selenium @kalibro_restart
88   - Scenario: I edit a Mezuro configuration with valid attributes
89   - Given I have a Mezuro configuration with the following data
90   - | name | Sample Configuration |
91   - | description | Sample Description |
92   - | user | joaosilva |
93   - And I am on article "Sample Configuration"
94   - And I follow "Edit"
95   - When I fill the fields with the new following data
96   - | article_name | Another Configuration |
97   - | article_description | Another Description |
98   - And I press "Save"
99   - Then I should see "Another Configuration"
100   - And I should see "Another Description"
101   - And I should see "Add Metric"
102   -
103   - @selenium @kalibro_restart
104   - Scenario: I try to edit a Mezuro configuration leaving empty its title
105   - Given I have a Mezuro configuration with the following data
106   - | name | Sample Configuration |
107   - | description | Sample Description |
108   - | user | joaosilva |
109   - And I am on article "Sample Configuration"
110   - And I follow "Edit"
111   - When I erase the "article_name" field
112   - And I press "Save"
113   - Then I should see "Title can't be blank"
114   -
115   - @selenium @kalibro_restart
116   - Scenario: I try to edit a Mezuro configuration with title of an existing Mezuro Configuration
117   - Given I have a Mezuro configuration with the following data
118   - | name | Sample Configuration |
119   - | description | Sample Description |
120   - | user | joaosilva |
121   - And I have a Mezuro configuration with the following data
122   - | name | Another Configuration |
123   - | description | Another Description |
124   - | user | joaosilva |
125   - And I am on article "Sample Configuration"
126   - And I follow "Edit"
127   - When I fill the fields with the new following data
128   - | article_name | Another Configuration |
129   - | article_description | Another Description |
130   - And I press "Save"
131   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
132   -
133   - @selenium @kalibro_restart
134   - Scenario: I delete a Mezuro configuration that belongs to me
135   - Given I have a Mezuro configuration with the following data
136   - | name | Sample Configuration |
137   - | description | Sample Description |
138   - | user | joaosilva |
139   - And I am on article "Sample Configuration"
140   - When I follow "Delete"
141   - And I confirm the "Are you sure that you want to remove the item "Sample Configuration"?" dialog
142   - Then I go to /joaosilva/sample-configuration
143   - And I should see "There is no such page: /joaosilva/sample-configuration"
144   -
145   - @selenium @kalibro_restart
146   - Scenario: I cannot edit or delete a Mezuro configuration that doesn't belong to me
147   - Given I have a Mezuro configuration with the following data
148   - | name | Sample Configuration |
149   - | description | Sample Description |
150   - | user | joaosilva |
151   - And the following users
152   - | login | name |
153   - | adminuser | Admin |
154   - And I am logged in as "adminuser"
155   - When I am on article "Sample Configuration"
156   - Then I should not see "Delete"
157   - And I should not see "Edit"
158   -
plugins/mezuro/features/project.feature
... ... @@ -1,134 +0,0 @@
1   -Feature: Project
2   - As a mezuro user
3   - I want to create, edit and remove 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 the Mezuro project input form
17   - Given I am on mycommunity's control panel
18   - When I follow "Mezuro project"
19   - Then I should see "Title"
20   - And I should see "Description"
21   -
22   - @kalibro_restart
23   - Scenario: I create a Mezuro project with valid attributes
24   - Given I am on mycommunity's control panel
25   - When I create a Mezuro project with the following data
26   - | Title | Sample Project |
27   - | Description | Sample Description |
28   - Then I should see "Sample Project"
29   - And I should see "Sample Description"
30   - And I should see "Add Repository"
31   -
32   - Scenario: I try to create a Mezuro project without title
33   - Given I am on mycommunity's control panel
34   - And I follow "Mezuro project"
35   - And the field "article_name" is empty
36   - When I press "Save"
37   - Then I should see "Title can't be blank"
38   -
39   - @kalibro_restart
40   - Scenario: I try to create a Mezuro project with title already in use
41   - Given I have a Mezuro project with the following data
42   - | name | Sample Project |
43   - | description | Sample Description |
44   - | community | mycommunity |
45   - And I am on mycommunity's control panel
46   - When I create a Mezuro project with the following data
47   - | Title | Sample Project |
48   - | Description | Sample Description |
49   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
50   -
51   - @selenium @kalibro_restart
52   - Scenario: I see a Mezuro project edit form
53   - Given I have a Mezuro project with the following data
54   - | name | Sample Project |
55   - | description | Sample Description |
56   - | community | mycommunity |
57   - And I am on article "Sample Project"
58   - When I follow "Edit"
59   - Then I should see "Sample Project" in the "article_name"
60   - And I should see "Sample Description" in the "article_description"
61   - And I should see "Save" button
62   -
63   - @selenium @kalibro_restart
64   - Scenario: I edit a Mezuro project with valid attributes
65   - Given I have a Mezuro project with the following data
66   - | name | Sample Project |
67   - | description | Sample Description |
68   - | community | mycommunity |
69   - And I am on article "Sample Project"
70   - And I follow "Edit"
71   - When I fill the fields with the new following data
72   - | article_name | Another Project |
73   - | article_description | Another Description|
74   - And I press "Save"
75   - Then I should see "Another Project"
76   - And I should see "Another Description"
77   - And I should see "Add Repository"
78   -
79   - @selenium @kalibro_restart
80   - Scenario: I try to edit a Mezuro project leaving empty its title
81   - Given I have a Mezuro project with the following data
82   - | name | Sample Project |
83   - | description | Sample Description |
84   - | community | mycommunity |
85   - And I am on article "Sample Project"
86   - And I follow "Edit"
87   - When I erase the "article_name" field
88   - And I press "Save"
89   - Then I should see "Title can't be blank"
90   -
91   - @selenium @kalibro_restart
92   - Scenario: I try to edit a Mezuro project with title of an existing Mezuro Project
93   - Given I have a Mezuro project with the following data
94   - | name | Sample Project |
95   - | description | Sample Description |
96   - | community | mycommunity |
97   - And I have a Mezuro project with the following data
98   - | name | Another Project |
99   - | description | Another Description |
100   - | community | mycommunity |
101   - And I am on article "Sample Project"
102   - And I follow "Edit"
103   - When I fill the fields with the new following data
104   - | article_name | Another Project |
105   - | article_description | Another Description|
106   - And I press "Save"
107   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
108   -
109   - @selenium @kalibro_restart
110   - Scenario: I delete a Mezuro project that belongs to me
111   - Given I have a Mezuro project with the following data
112   - | name | Sample Project |
113   - | description | Sample Description |
114   - | community | mycommunity |
115   - And I am on article "Sample Project"
116   - When I follow "Delete"
117   - And I confirm the "Are you sure that you want to remove the item "Sample Project"?" dialog
118   - Then I go to /mycommunity/sample-project
119   - And I should see "There is no such page: /mycommunity/sample-project"
120   -
121   - @selenium @kalibro_restart
122   - Scenario: I cannot edit or delete a Mezuro project that doesn't belong to me
123   - Given I have a Mezuro project with the following data
124   - | name | Sample Project |
125   - | description | Sample Description |
126   - | community | mycommunity |
127   - And the following users
128   - | login | name |
129   - | user | User |
130   - And I am logged in as "user"
131   - When I am on article "Sample Project"
132   - Then I should not see "Delete"
133   - And I should not see "Edit"
134   -
plugins/mezuro/features/reading.feature
... ... @@ -1,243 +0,0 @@
1   -@kalibro_restart
2   -Feature: Reading
3   - As a Mezuro user
4   - I want to create, edit and remove a reading
5   -
6   - Background:
7   - Given the following users
8   - | login | name |
9   - | joaosilva | Joao Silva |
10   - And I am logged in as "joaosilva"
11   - And "Mezuro" plugin is enabled
12   - And I have a Mezuro reading group with the following data
13   - | name | Sample Reading Group |
14   - | description | Sample Description |
15   - | user | joaosilva |
16   -
17   - @selenium
18   - Scenario: I want to see the Mezuro reading input form
19   - Given I am on article "Sample Reading Group"
20   - When I follow "Add Reading"
21   - Then I should see "Sample Reading Group Reading Group" in a link
22   - And I should see "Label"
23   - And I should see "Grade"
24   - And I should see "Color"
25   - And I should see "Save" button
26   -
27   - @selenium
28   - Scenario: I try to add a reading with no name
29   - Given I am on article "Sample Reading Group"
30   - When I follow "Add Reading"
31   - And I fill the fields with the new following data
32   - | reading_label | |
33   - | reading_grade | 10.2 |
34   - | reading_color | ABCDEF |
35   - And I press "Save"
36   - Then I should see "Please fill all fields marked with (*)." inside an alert
37   -
38   - @selenium
39   - Scenario: I try to add a reading with no grade
40   - Given I am on article "Sample Reading Group"
41   - When I follow "Add Reading"
42   - And I fill the fields with the new following data
43   - | reading_label | Useless |
44   - | reading_grade | |
45   - | reading_color | f51313 |
46   - And I press "Save"
47   - Then I should see "Please fill all fields marked with (*)." inside an alert
48   -
49   - @selenium
50   - Scenario: I try to add a reading with no color
51   - Given I am on article "Sample Reading Group"
52   - When I follow "Add Reading"
53   - And I fill the fields with the new following data
54   - | reading_label | Fantastic |
55   - | reading_grade | 4.0 |
56   - | reading_color | |
57   - And I press "Save"
58   - Then I should see "Please fill all fields marked with (*)." inside an alert
59   -
60   - @selenium
61   - Scenario: I try to add a reading with an invalid color
62   - Given I am on article "Sample Reading Group"
63   - When I follow "Add Reading"
64   - And I fill the fields with the new following data
65   - | reading_label | Fantastic |
66   - | reading_grade | 4.0 |
67   - | reading_color | 1D10T4 |
68   - And I press "Save"
69   - Then I should see "This is not a valid color." inside an alert
70   -
71   - @selenium
72   - Scenario: I try to add a reading with a label which already exists
73   - Given I have a Mezuro reading with the following data
74   - | label | Simple |
75   - | grade | 2.0 |
76   - | color | 34afe2 |
77   - And I am on article "Sample Reading Group"
78   - When I follow "Add Reading"
79   - And I fill the fields with the new following data
80   - | reading_label | Simple |
81   - | reading_grade | 4.0 |
82   - | reading_color | 1f0fa0 |
83   - And I press "Save"
84   - Then I should see "This label already exists! Please, choose another one." inside an alert
85   -
86   - @selenium
87   - Scenario: I try to add a reading with a grade which already exists
88   - Given I have a Mezuro reading with the following data
89   - | label | Extraordinary |
90   - | grade | 10.0 |
91   - | color | b4bad0 |
92   - And I am on article "Sample Reading Group"
93   - When I follow "Add Reading"
94   - And I fill the fields with the new following data
95   - | reading_label | Super |
96   - | reading_grade | 10.0 |
97   - | reading_color | f0f000 |
98   - And I press "Save"
99   - Then I should see "This grade already exists! Please, choose another one." inside an alert
100   -
101   - @selenium
102   - Scenario: I want to add a reading with valid attributes
103   - Given I am on article "Sample Reading Group"
104   - When I follow "Add Reading"
105   - And I fill the fields with the new following data
106   - | reading_label | Normal |
107   - | reading_grade | 1.0 |
108   - | reading_color | 19cbd1 |
109   - And I press "Save"
110   - Then I should see "Normal"
111   - And I should see "1.0"
112   - And I should see the "#19cbd1" color
113   - And I should see "Remove"
114   -
115   - @selenium
116   - Scenario: I want to see a reading edit form
117   - Given I have a Mezuro reading with the following data
118   - | label | Simple |
119   - | grade | 2.0 |
120   - | color | 34afe2 |
121   - And I am on article "Sample Reading Group"
122   - When I follow the edit link for "Simple" reading
123   - Then I should see "Simple" in the "reading_label"
124   - And I should see "2.0" in the "reading_grade"
125   - And I should see "34afe2" in the "reading_color"
126   - And I should see "Save" button
127   -
128   - @selenium
129   - Scenario: I try to edit a reading leaving empty its title
130   - Given I have a Mezuro reading with the following data
131   - | label | Simple |
132   - | grade | 2.0 |
133   - | color | 34afe2 |
134   - And I am on article "Sample Reading Group"
135   - When I follow the edit link for "Simple" reading
136   - And I erase the "reading_label" field
137   - And I press "Save"
138   - Then I should see "Please fill all fields marked with (*)." inside an alert
139   -
140   - @selenium
141   - Scenario: I try to edit a reading leaving empty its grade
142   - Given I have a Mezuro reading with the following data
143   - | label | Simple |
144   - | grade | 2.0 |
145   - | color | 34afe2 |
146   - And I am on article "Sample Reading Group"
147   - When I follow the edit link for "Simple" reading
148   - And I erase the "reading_grade" field
149   - And I press "Save"
150   - Then I should see "Please fill all fields marked with (*)." inside an alert
151   -
152   - @selenium
153   - Scenario: I try to edit a reading leaving empty its color
154   - Given I have a Mezuro reading with the following data
155   - | label | Simple |
156   - | grade | 2.0 |
157   - | color | 34afe2 |
158   - And I am on article "Sample Reading Group"
159   - When I follow the edit link for "Simple" reading
160   - And I erase the "reading_color" field
161   - And I press "Save"
162   - Then I should see "Please fill all fields marked with (*)." inside an alert
163   -
164   - @selenium
165   - Scenario: I try to edit a reading with an invalid color
166   - Given I have a Mezuro reading with the following data
167   - | label | Worthless |
168   - | grade | 1.0 |
169   - | color | e5cad4 |
170   - And I am on article "Sample Reading Group"
171   - When I follow the edit link for "Worthless" reading
172   - And I fill the fields with the new following data
173   - | reading_label | Worthless |
174   - | reading_grade | 1.0 |
175   - | reading_color | bu5aoooooo |
176   - And I press "Save"
177   - Then I should see "This is not a valid color." inside an alert
178   -
179   - @selenium
180   - Scenario: I try to edit a reading with a label which already exists
181   - Given I have a Mezuro reading with the following data
182   - | label | Simple |
183   - | grade | 2.0 |
184   - | color | 34afe2 |
185   - And I have a Mezuro reading with the following data
186   - | label | Complex |
187   - | grade | 5.0 |
188   - | color | 13deb2 |
189   - And I am on article "Sample Reading Group"
190   - When I follow the edit link for "Simple" reading
191   - And I fill the fields with the new following data
192   - | reading_label | Complex |
193   - | reading_grade | 2.0 |
194   - | reading_color | 34afe2 |
195   - And I press "Save"
196   - Then I should see "This label already exists! Please, choose another one." inside an alert
197   -
198   - @selenium
199   - Scenario: I try to edit a reading with a grade which already exists
200   - Given I have a Mezuro reading with the following data
201   - | label | Terrible |
202   - | grade | 0.0 |
203   - | color | 4feda4 |
204   - And I have a Mezuro reading with the following data
205   - | label | Perfect |
206   - | grade | 10.0 |
207   - | color | de41b2 |
208   - And I am on article "Sample Reading Group"
209   - When I follow the edit link for "Terrible" reading
210   - And I fill the fields with the new following data
211   - | reading_label | Terrible |
212   - | reading_grade | 10.0 |
213   - | reading_color | 4feda4 |
214   - And I press "Save"
215   - Then I should see "This grade already exists! Please, choose another one." inside an alert
216   -
217   - @selenium
218   - Scenario: I want to edit a reading with valid attributes
219   - Given I have a Mezuro reading with the following data
220   - | label | Awful |
221   - | grade | 2.5 |
222   - | color | babaca |
223   - And I am on article "Sample Reading Group"
224   - When I follow the edit link for "Awful" reading
225   - And I fill the fields with the new following data
226   - | reading_label | Awesome |
227   - | reading_grade | 10.0 |
228   - | reading_color | fa40fa |
229   - And I press "Save"
230   - Then I should see "Awesome"
231   - And I should see "10.0"
232   - And I should see the "#fa40fa" color
233   -
234   - @selenium
235   - Scenario: I want to remove a reading
236   - Given I have a Mezuro reading with the following data
237   - | label | Unbelievable |
238   - | grade | 9001.0 |
239   - | color | f0f0ca |
240   - And I am on article "Sample Reading Group"
241   - When I follow the remove link for "Unbelievable" reading
242   - Then I should not see "Unbelievable"
243   - And I should not see "9001.0"
plugins/mezuro/features/reading_group.feature
... ... @@ -1,131 +0,0 @@
1   -Feature: Reading Group
2   - As a mezuro user
3   - I want to create, edit and remove a Mezuro reading group
4   -
5   - Background:
6   - Given the following users
7   - | login | name |
8   - | joaosilva | Joao Silva |
9   - Given I am logged in as "joaosilva"
10   - And "Mezuro" plugin is enabled
11   -
12   - Scenario: I see Mezuro reading group's input form
13   - Given I am on joaosilva's control panel
14   - When I follow "Mezuro reading group"
15   - Then I should see "Title"
16   - And I should see "Description"
17   -
18   - @kalibro_restart
19   - Scenario: I create a Mezuro reading group with valid attributes
20   - Given I am on joaosilva's control panel
21   - When I create a Mezuro reading group with the following data
22   - | Title | Sample Reading Group |
23   - | Description | Sample Description |
24   - Then I should see "Sample Reading Group"
25   - And I should see "Sample Description"
26   - And I should see "Readings"
27   - And I should see "Add Reading"
28   -
29   - Scenario: I try to create a Mezuro reading group without title
30   - Given I am on joaosilva's control panel
31   - And I follow "Mezuro reading group"
32   - And the field "article_name" is empty
33   - When I press "Save"
34   - Then I should see "Title can't be blank"
35   -
36   - @kalibro_restart
37   - Scenario: I try to create a Mezuro reading group with title already in use
38   - Given I have a Mezuro reading group with the following data
39   - | name | Sample Reading group |
40   - | description | Sample Description |
41   - | user | joaosilva |
42   - And I am on joaosilva's control panel
43   - When I create a Mezuro reading group with the following data
44   - | Title | Sample Reading Group |
45   - | Description | Sample Description |
46   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
47   -
48   - @selenium @kalibro_restart
49   - Scenario: I see a Mezuro reading group edit form
50   - Given I have a Mezuro reading group with the following data
51   - | name | Sample Reading group |
52   - | description | Sample Description |
53   - | user | joaosilva |
54   - And I am on article "Sample Reading group"
55   - When I follow "Edit"
56   - Then I should see "Sample Reading group" in the "article_name"
57   - And I should see "Sample Description" in the "article_description"
58   - And I should see "Save" button
59   -
60   - @selenium @kalibro_restart
61   - Scenario: I edit a Mezuro reading group with valid attributes
62   - Given I have a Mezuro reading group with the following data
63   - | name | Sample Reading group |
64   - | description | Sample Description |
65   - | user | joaosilva |
66   - And I am on article "Sample Reading group"
67   - And I follow "Edit"
68   - When I fill the fields with the new following data
69   - | article_name | Another Reading group |
70   - | article_description | Another Description |
71   - And I press "Save"
72   - Then I should see "Another Reading group"
73   - And I should see "Another Description"
74   - And I should see "Add Reading"
75   -
76   - @selenium @kalibro_restart
77   - Scenario: I try to edit a Mezuro reading group leaving empty its title
78   - Given I have a Mezuro reading group with the following data
79   - | name | Sample Reading group |
80   - | description | Sample Description |
81   - | user | joaosilva |
82   - And I am on article "Sample Reading group"
83   - And I follow "Edit"
84   - When I erase the "article_name" field
85   - And I press "Save"
86   - Then I should see "Title can't be blank"
87   -
88   - @selenium @kalibro_restart
89   - Scenario: I try to edit a Mezuro reading group with title of an existing Mezuro Reading group
90   - Given I have a Mezuro reading group with the following data
91   - | name | Sample Reading group |
92   - | description | Sample Description |
93   - | user | joaosilva |
94   - And I have a Mezuro reading group with the following data
95   - | name | Another Reading group |
96   - | description | Another Description |
97   - | user | joaosilva |
98   - And I am on article "Sample Reading group"
99   - And I follow "Edit"
100   - When I fill the fields with the new following data
101   - | article_name | Another Reading group |
102   - | article_description | Another Description |
103   - And I press "Save"
104   - Then I should see "Slug The title (article name) is already being used by another article, please use another title."
105   -
106   - @selenium @kalibro_restart
107   - Scenario: I delete a Mezuro reading group that belongs to me
108   - Given I have a Mezuro reading group with the following data
109   - | name | Sample Reading group |
110   - | description | Sample Description |
111   - | user | joaosilva |
112   - And I am on article "Sample Reading group"
113   - When I follow "Delete"
114   - And I confirm the "Are you sure that you want to remove the item "Sample Reading group"?" dialog
115   - Then I go to /joaosilva/sample-reading-group
116   - And I should see "There is no such page: /joaosilva/sample-reading-group"
117   -
118   - @selenium @kalibro_restart
119   - Scenario: I cannot edit or delete a Mezuro reading group that doesn't belong to me
120   - Given I have a Mezuro reading group with the following data
121   - | name | Sample Reading group |
122   - | description | Sample Description |
123   - | user | joaosilva |
124   - And the following users
125   - | login | name |
126   - | adminuser | Admin |
127   - And I am logged in as "adminuser"
128   - When I am on article "Sample Reading group"
129   - Then I should not see "Delete"
130   - And I should not see "Edit"
131   -
plugins/mezuro/features/repository.feature
... ... @@ -1,276 +0,0 @@
1   -@kalibro_restart
2   -Feature: Repository
3   - As a Mezuro user
4   - I want to create, edit, remove and process a repository
5   -
6   - Background:
7   - Given the following users
8   - | login | name |
9   - | joaosilva | Joao Silva |
10   - And I am logged in as "joaosilva"
11   - And "Mezuro" plugin is enabled
12   - And the following community
13   - | identifier | name |
14   - | mycommunity | My Community |
15   - And "Joao Silva" is admin of "My Community"
16   - And I have a Mezuro project with the following data
17   - | name | Sample Project |
18   - | description | Sample Description |
19   - | community | mycommunity |
20   - And I have a Mezuro configuration with the following data
21   - | name | Sample Configuration|
22   - | description | Sample Description |
23   - | user | joaosilva |
24   - And I have a Mezuro reading group with the following data
25   - | name | Sample Reading group |
26   - | description | Sample Description |
27   - | user | joaosilva |
28   - And I have a Mezuro metric configuration with previous created configuration and reading group
29   -
30   - Scenario: I want to see the Mezuro repository input form
31   - Given I am on article "Sample Project"
32   - When I follow "Add Repository"
33   - Then I should see "Name"
34   - And I should see "Description"
35   - And I should see "License"
36   - And I should see "Process Period"
37   - And I should see "Type"
38   - And I should see "Address"
39   - And I should see "Configuration"
40   - And I should see "Add" button
41   -
42   - @selenium
43   - Scenario: I try to add a repository with no name
44   - Given I am on article "Sample Project"
45   - And I follow "Add Repository"
46   - When I fill the fields with the new following data
47   - | repository_name | |
48   - | repository_description | My Description |
49   - | repository_license | ISC License (ISC) |
50   - | repository_process_period | Not Periodically |
51   - | repository_type | SUBVERSION |
52   - | repository_address | https://project.svn.sourceforge.net/svnroot/project |
53   - | repository_configuration_id | Sample Configuration |
54   - And I press "Add"
55   - Then I should see "Please fill all fields marked with (*)." inside an alert
56   -
57   - @selenium
58   - Scenario: I try to add a repository with no address
59   - Given I am on article "Sample Project"
60   - And I follow "Add Repository"
61   - When I fill the fields with the new following data
62   - | repository_name | My Name |
63   - | repository_description | My Description |
64   - | repository_license | ISC License (ISC) |
65   - | repository_process_period | Not Periodically |
66   - | repository_type | SUBVERSION |
67   - | repository_address | |
68   - | repository_configuration_id | Sample Configuration |
69   - And I press "Add"
70   - Then I should see "Please fill all fields marked with (*)." inside an alert
71   -
72   - @selenium
73   - Scenario: I try to add a repository with an invalid address
74   - Given I am on article "Sample Project"
75   - And I follow "Add Repository"
76   - When I fill the fields with the new following data
77   - | repository_name | My Name |
78   - | repository_description | My Description |
79   - | repository_license | ISC License (ISC) |
80   - | repository_process_period | Not Periodically |
81   - | repository_type | GIT |
82   - | repository_address | https://invalid-address.any-extension |
83   - | repository_configuration_id | Sample Configuration |
84   - And I press "Add"
85   - Then I should see "Address does not match type GIT chosen." inside an alert
86   -
87   - @selenium
88   - Scenario: I want to add a repository with valid attributes
89   - Given I am on article "Sample Project"
90   - And I follow "Add Repository"
91   - When I fill the fields with the new following data
92   - | repository_name | My Name |
93   - | repository_description | My Description |
94   - | repository_license | ISC License (ISC) |
95   - | repository_process_period | Not Periodically |
96   - | repository_type | GIT |
97   - | repository_address | https://github.com/user/project.git |
98   - | repository_configuration_id | Sample Configuration |
99   - And I press "Add"
100   - Then I should see "My Name"
101   - And I should see "My Description"
102   - And I should see "ISC License (ISC)"
103   - And I should see "Not Periodically"
104   - And I should see "GIT"
105   - And I should see "https://github.com/user/project.git"
106   - And I should see "Sample Configuration"
107   - And I should see "Status"
108   -
109   - @selenium
110   - Scenario: I want to see the repository edit form
111   - Given I have a Mezuro repository with the following data
112   - | name | My Name |
113   - | description | My Description |
114   - | license | ISC License (ISC) |
115   - | process_period | Not Periodically |
116   - | type | GIT |
117   - | address | https://github.com/user/project.git |
118   - | configuration_id | Sample Configuration |
119   - And I am on article "Sample Project"
120   - When I follow the edit link for "My Name" repository
121   - Then I should see "My Name" in the "repository_name"
122   - And I should see "My Description" in the "repository_description"
123   - And I should see "ISC License (ISC)" in the "repository_license"
124   - And I should see "Not Periodically" in the process period select field
125   - And I should see "GIT" in the "repository_type"
126   - And I should see "https://github.com/user/project.git" in the "repository_address"
127   - And I should see "Sample Configuration" in the repository configuration select field
128   -
129   - @selenium
130   - Scenario: I edit a Mezuro repository with valid attributes
131   - Given I have a Mezuro repository with the following data
132   - | name | My Name |
133   - | description | My Description |
134   - | license | ISC License (ISC) |
135   - | process_period | Not Periodically |
136   - | type | GIT |
137   - | address | https://github.com/user/project.git |
138   - | configuration_id | Sample Configuration |
139   - And I am on article "Sample Project"
140   - When I follow the edit link for "My Name" repository
141   - And I fill the fields with the new following data
142   - | repository_name | Another Name |
143   - | repository_description | Another Description |
144   - | repository_license | Apple Public Source License (APSL-2.0) |
145   - | repository_process_period | Weekly |
146   - | repository_type | SUBVERSION |
147   - | repository_address | https://project.svn.sourceforge.net/svnroot/project |
148   - | repository_configuration_id | Sample Configuration |
149   - And I press "Add"
150   - Then I should see "Another Name"
151   - And I should see "Another Description"
152   - And I should see "Apple Public Source License (APSL-2.0)"
153   - And I should see "Weekly"
154   - And I should see "SUBVERSION"
155   - And I should see "https://project.svn.sourceforge.net/svnroot/project"
156   - And I should see "Sample Configuration"
157   -
158   - @selenium
159   - Scenario: I try to edit a Mezuro repository leaving empty its title
160   - Given I have a Mezuro repository with the following data
161   - | name | My Name |
162   - | description | My Description |
163   - | license | ISC License (ISC) |
164   - | process_period | Not Periodically |
165   - | type | GIT |
166   - | address | https://github.com/user/project.git |
167   - | configuration_id | Sample Configuration |
168   - And I am on article "Sample Project"
169   - And I follow the edit link for "My Name" repository
170   - When I erase the "repository_name" field
171   - And I press "Add"
172   - Then I should see "Please fill all fields marked with (*)." inside an alert
173   -
174   - @selenium
175   - Scenario: I try to edit a Mezuro repository leaving empty its address
176   - Given I have a Mezuro repository with the following data
177   - | name | My Name |
178   - | description | My Description |
179   - | license | ISC License (ISC) |
180   - | process_period | Not Periodically |
181   - | type | GIT |
182   - | address | https://github.com/user/project.git |
183   - | configuration_id | Sample Configuration |
184   - And I am on article "Sample Project"
185   - And I follow the edit link for "My Name" repository
186   - When I erase the "repository_address" field
187   - And I press "Add"
188   - Then I should see "Please fill all fields marked with (*)." inside an alert
189   -
190   - @selenium
191   - Scenario: I try to edit a Mezuro repository with an invalid address
192   - Given I have a Mezuro repository with the following data
193   - | name | My Name |
194   - | description | My Description |
195   - | license | ISC License (ISC) |
196   - | process_period | Not Periodically |
197   - | type | GIT |
198   - | address | https://github.com/user/project.git |
199   - | configuration_id | Sample Configuration |
200   - And I am on article "Sample Project"
201   - When I follow the edit link for "My Name" repository
202   - And I fill the fields with the new following data
203   - | repository_name | Another Name |
204   - | repository_description | Another Description |
205   - | repository_license | Apple Public Source License (APSL-2.0) |
206   - | repository_process_period | Weekly |
207   - | repository_type | SUBVERSION |
208   - | repository_address | https://invalid-address.any-extension |
209   - | repository_configuration_id | Sample Configuration |
210   - And I press "Add"
211   - Then I should see "Address does not match type SUBVERSION chosen." inside an alert
212   -
213   - @selenium
214   - Scenario: I try to edit a repository with an existing repository name
215   - Given I have a Mezuro repository with the following data
216   - | name | My Name |
217   - | description | My Description |
218   - | license | ISC License (ISC) |
219   - | process_period | Not Periodically |
220   - | type | GIT |
221   - | address | https://github.com/user/project.git |
222   - | configuration_id | Sample Configuration |
223   - And I have a Mezuro repository with the following data
224   - | name | Another Name |
225   - | description | Another Description |
226   - | license | Apple Public Source License (APSL-2.0) |
227   - | process_period | Weekly |
228   - | type | SUBVERSION |
229   - | address | https://project.svn.sourceforge.net/svnroot/project |
230   - | configuration_id | Sample Configuration |
231   - And I am on article "Sample Project"
232   - When I follow the edit link for "My Name" repository
233   - And I fill the fields with the new following data
234   - | repository_name | Another Name |
235   - | repository_description | Another Description |
236   - | repository_license | Apple Public Source License (APSL-2.0) |
237   - | repository_process_period | Weekly |
238   - | repository_type | SUBVERSION |
239   - | repository_address | https://project.svn.sourceforge.net/svnroot/project |
240   - | repository_configuration_id | Sample Configuration |
241   - And I press "Add"
242   - #Then I should see "Slug The title (article name) is already being used by another article, please use another title."
243   - #FIXME fix this validation
244   -
245   - @selenium
246   - Scenario: I delete a Mezuro repository of mine
247   - Given I have a Mezuro repository with the following data
248   - | name | My Name |
249   - | description | My Description |
250   - | license | ISC License (ISC) |
251   - | process_period | Not Periodically |
252   - | type | GIT |
253   - | address | https://github.com/user/project.git |
254   - | configuration_id | Sample Configuration |
255   - And I am on article "Sample Project"
256   - When I follow the remove link for "My Name" repository
257   - Then I should not see "My Name"
258   -
259   - @selenium
260   - Scenario: I try to edit or delete a Mezuro repository which doesn't belong to me
261   - Given I have a Mezuro repository with the following data
262   - | name | My Name |
263   - | description | My Description |
264   - | license | ISC License (ISC) |
265   - | process_period | Not Periodically |
266   - | type | GIT |
267   - | address | https://github.com/user/project.git |
268   - | configuration_id | Sample Configuration |
269   - And the following users
270   - | login | name |
271   - | zacarias | Zacarias |
272   - And I am logged in as "zacarias"
273   - When I am on article "Sample Project"
274   - Then I should not see the edit link for "My Name" repository
275   - And I should not see the remove link for "My Name" repository
276   -
plugins/mezuro/features/step_definitions/mezuro_steps.rb
... ... @@ -1,164 +0,0 @@
1   -When /^I create a Mezuro (project|reading group) with the following data$/ do |type, fields|
2   - click_link ("Mezuro " + type)
3   -
4   - fields.rows_hash.each do |name, value|
5   - When %{I fill in "#{name}" with "#{value}"}
6   - end
7   -
8   - click_button "Save"
9   - Article.find_by_name(fields.rows_hash[:Title])
10   -end
11   -
12   -When /^I create a Mezuro configuration with the following data$/ do |fields|
13   - click_link ("Mezuro configuration")
14   -
15   - fields.rows_hash.each do |name, value|
16   - if name != "Clone"
17   - When %{I fill in "#{name}" with "#{value}"}
18   - end
19   - end
20   -
21   - click_button "Save"
22   - Article.find_by_name(fields.rows_hash[:Title])
23   -end
24   -
25   -Then /^I directly delete content with name "([^\"]*)" for testing purposes$/ do |content_name|
26   - Article.find_by_name(content_name).destroy
27   -end
28   -
29   -Then /^I should be at the url "([^\"]*)"$/ do |url|
30   - if response.class.to_s == 'Webrat::SeleniumResponse'
31   - URI.parse(response.selenium.get_location).path.should == url
32   - else
33   - URI.parse(current_url).path.should == url
34   - end
35   -end
36   -
37   -Then /^the field "([^"]*)" is empty$/ do |field_name|
38   - find_field(field_name).value.should be_nil
39   -end
40   -
41   -Then /^I should see "([^\"]*)" inside an alert$/ do |message|
42   - alert = page.driver.browser.switch_to.alert
43   - assert_equal message, alert.text
44   - alert.accept
45   -end
46   -
47   -Then /^I should see "([^"]*)" in the "([^"]*)"$/ do |content, labeltext|
48   - find_field(labeltext).value.should == content
49   -end
50   -
51   -Then /^I should see "([^"]*)" button$/ do |button_name|
52   - find_button(button_name).should_not be_nil
53   -end
54   -
55   -Then /^I should see "([^"]*)" in a link$/ do |link_name|
56   - find_link(link_name).should_not be_nil
57   -end
58   -
59   -Then /^I should see "([^"]*)" in the process period select field$/ do |content|
60   - selected = MezuroPlugin::Helpers::ContentViewerHelper.periodicity_options.select { |option| option.first == content }.first
61   - assert_equal selected.last, find_field("repository_process_period").value.to_i
62   -end
63   -
64   -Then /^I should see "([^"]*)" in the repository configuration select field$/ do |content|
65   - selected = Kalibro::Configuration.all.select { |option| option.name == content }.first
66   - assert_equal selected.id, find_field("repository_configuration_id").value.to_i
67   -end
68   -
69   -Then /^I should not see "([^"]*)" button$/ do |button_name|
70   - find_button(button_name).should be_nil
71   -end
72   -
73   -When /^I have a Mezuro (project|reading group|configuration) with the following data$/ do |type, fields|
74   - item = {}
75   - fields.rows_hash.each do |name, value|
76   - if(name=="user" or name=="community")
77   - item.merge!(:profile=>Profile[value])
78   - else
79   - item.merge!(name => value)
80   - end
81   - end
82   - if (type == "project")
83   - result = MezuroPlugin::ProjectContent.new(item)
84   - elsif (type == "reading group")
85   - result = MezuroPlugin::ReadingGroupContent.new(item)
86   - elsif (type == "configuration")
87   - result = MezuroPlugin::ConfigurationContent.new(item)
88   - end
89   -
90   - result.save!
91   -end
92   -
93   -When /^I have a Mezuro (reading|repository) with the following data$/ do |type, fields|
94   - item = {}
95   - fields.rows_hash.each do |name, value|
96   - if(name=="user" or name=="community")
97   - item.merge!(:profile=>Profile[value])
98   - else
99   - item.merge!(name => value)
100   - end
101   - end
102   - if (type == "repository")
103   - item["configuration_id"] = Kalibro::Configuration.all.select {|configuration| configuration.name == item["configuration_id"] }.first.id
104   - item.merge!(:project_id => Kalibro::Project.all.last.id)
105   - Kalibro::Repository.create(item)
106   - elsif (type == "reading")
107   - item.merge!(:group_id => Kalibro::ReadingGroup.all.last.id)
108   - Kalibro::Reading.create(item)
109   - end
110   -end
111   -
112   -When /^I erase the "([^"]*)" field$/ do |field_name|
113   - find_field(field_name).set ""
114   -end
115   -
116   -When /^I fill the fields with the new following data$/ do |fields|
117   - fields.rows_hash.each do |key, value|
118   - name = key.to_s
119   - element = find_field(name)
120   - if (element.tag_name.to_s == "select")
121   - select(value, :from => name)
122   - else
123   - element.set value
124   - end
125   - end
126   -end
127   -
128   -When /^I have a Mezuro metric configuration with previous created configuration and reading group$/ do
129   - Kalibro::MetricConfiguration.create({
130   - :code => 'amloc1',
131   - :metric => {:name => 'Total Coupling Factor', :compound => "false", :scope => 'SOFTWARE', :language => ['JAVA']},
132   - :base_tool_name => "Analizo",
133   - :weight => "1.0",
134   - :aggregation_form => 'AVERAGE',
135   - :reading_group_id => Kalibro::ReadingGroup.all.last.id,
136   - :configuration_id => Kalibro::Configuration.all.last.id
137   - })
138   -end
139   -
140   -When /^I follow the (edit|remove) link for "([^"]*)" (repository|reading)$/ do |action, name, type|
141   - if (type == "repository")
142   - project_id = Kalibro::Project.all.last.id
143   - repositories = Kalibro::Repository.repositories_of project_id
144   - id = repositories.select {|option| option.name == name}.first.id
145   - elsif (type == "reading")
146   - reading_group_id = Kalibro::ReadingGroup.all.last.id
147   - readings = Kalibro::Reading.readings_of reading_group_id
148   - id = readings.select {|option| option.label == name}.first.id
149   - if (action == "edit")
150   - action = name
151   - end
152   - end
153   -
154   - elements = all('a', :text => action.capitalize)
155   - link = type + "_id"
156   - action_link = elements.select {|element| (/#{link}=#{id}/ =~ element[:href]) }.first
157   - action_link.click
158   -end
159   -
160   -Then /^I should see the "([^"]*)" color$/ do |color_name|
161   - elements = all('td', :text => "")
162   - found = elements.select { |element| color_name == element[:bgcolor]}.first
163   - assert_not_nil found
164   -end
plugins/mezuro/features/support/hooks.rb
... ... @@ -1,12 +0,0 @@
1   -Before do
2   - if !$dunit
3   - command = "#{RAILS_ROOT}/plugins/mezuro/script/tests/prepare_kalibro_query_file.sh"
4   - system command
5   - $dunit = true
6   - end
7   -end
8   -
9   -After ('@kalibro_restart') do
10   - command = "#{RAILS_ROOT}/plugins/mezuro/script/tests/delete_all_kalibro_entries.sh"
11   - system command
12   -end
plugins/mezuro/install.rb
... ... @@ -1 +0,0 @@
1   -raise "Not ready yet"
plugins/mezuro/lib/kalibro/base_tool.rb
... ... @@ -1,34 +0,0 @@
1   -class Kalibro::BaseTool < Kalibro::Model
2   -
3   - attr_accessor :name, :description, :collector_class_name, :supported_metric
4   -
5   - def self.find_by_name(base_tool_name)
6   - new request(:get_base_tool, {:base_tool_name => base_tool_name})[:base_tool]
7   - end
8   -
9   - def self.all
10   - basetools = all_names
11   - basetools.map{ |name| find_by_name(name) }
12   - end
13   -
14   - def self.all_names
15   - request(:all_base_tool_names)[:base_tool_name].to_a
16   - end
17   -
18   - def supported_metric=(value)
19   - @supported_metric = Kalibro::Metric.to_objects_array value
20   - end
21   -
22   - def supported_metrics
23   - @supported_metric
24   - end
25   -
26   - def supported_metrics=(supported_metrics)
27   - @supported_metric = supported_metrics
28   - end
29   -
30   - def metric(name)
31   - supported_metrics.find {|metric| metric.name == name}
32   - end
33   -
34   -end
plugins/mezuro/lib/kalibro/configuration.rb
... ... @@ -1,16 +0,0 @@
1   -class Kalibro::Configuration < Kalibro::Model
2   -
3   - attr_accessor :id, :name, :description
4   -
5   - def id=(value)
6   - @id = value.to_i
7   - end
8   -
9   - def self.all
10   - response = request(:all_configurations)[:configuration]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map {|configuration| new configuration}
14   - end
15   -
16   -end
plugins/mezuro/lib/kalibro/date_metric_result.rb
... ... @@ -1,16 +0,0 @@
1   -class Kalibro::DateMetricResult < Kalibro::Model
2   -
3   - attr_accessor :date, :metric_result
4   -
5   - def date=(value)
6   - @date = value.is_a?(String) ? DateTime.parse(value) : value
7   - end
8   -
9   - def metric_result=(value)
10   - @metric_result = Kalibro::MetricResult.to_object value
11   - end
12   -
13   - def result
14   - @metric_result.value
15   - end
16   -end
plugins/mezuro/lib/kalibro/date_module_result.rb
... ... @@ -1,17 +0,0 @@
1   -class Kalibro::DateModuleResult < Kalibro::Model
2   -
3   - attr_accessor :date, :module_result
4   -
5   - def date=(value)
6   - @date = value.is_a?(String) ? DateTime.parse(value) : value
7   - end
8   -
9   - def module_result=(value)
10   - @module_result = Kalibro::ModuleResult.to_object value
11   - end
12   -
13   - def result
14   - @module_result.grade
15   - end
16   -
17   -end
plugins/mezuro/lib/kalibro/errors/record_not_found.rb
... ... @@ -1,2 +0,0 @@
1   -class Kalibro::Errors::RecordNotFound < Kalibro::Errors::Standard
2   -end
3 0 \ No newline at end of file
plugins/mezuro/lib/kalibro/errors/standard.rb
... ... @@ -1,4 +0,0 @@
1   -#Inspired on:
2   -#https://github.com/rails/rails/blob/master/activerecord/lib/active_record/errors.rb
3   -class Kalibro::Errors::Standard < StandardError
4   -end
5 0 \ No newline at end of file
plugins/mezuro/lib/kalibro/metric.rb
... ... @@ -1,17 +0,0 @@
1   -class Kalibro::Metric < Kalibro::Model
2   -
3   - attr_accessor :name, :compound, :scope, :description, :script, :language
4   -
5   - def languages
6   - @language
7   - end
8   -
9   - def languages=(languages)
10   - @language = languages
11   - end
12   -
13   - def language=(value)
14   - @language = Kalibro::Model.to_objects_array value
15   - end
16   -
17   -end
plugins/mezuro/lib/kalibro/metric_configuration.rb
... ... @@ -1,43 +0,0 @@
1   -class Kalibro::MetricConfiguration < Kalibro::Model
2   -
3   - attr_accessor :id, :code, :metric, :base_tool_name, :weight, :aggregation_form, :reading_group_id, :configuration_id
4   -
5   - def id=(value)
6   - @id = value.to_i
7   - end
8   -
9   - def reading_group_id=(value)
10   - @reading_group_id = value.to_i
11   - end
12   -
13   - def metric=(value)
14   - @metric = Kalibro::Metric.to_object(value)
15   - end
16   -
17   - def weight=(value)
18   - @weight = value.to_f
19   - end
20   -
21   - def update_attributes(attributes={})
22   - attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
23   - save
24   - end
25   -
26   - def to_hash
27   - super :except => [:configuration_id]
28   - end
29   -
30   - def self.metric_configurations_of(configuration_id)
31   - response = request(:metric_configurations_of, {:configuration_id => configuration_id})[:metric_configuration]
32   - response = [] if response.nil?
33   - response = [response] if response.is_a?(Hash)
34   - response.map { |metric_configuration| new metric_configuration }
35   - end
36   -
37   - private
38   -
39   - def save_params
40   - {:metric_configuration => self.to_hash, :configuration_id => self.configuration_id}
41   - end
42   -
43   -end
plugins/mezuro/lib/kalibro/metric_configuration_snapshot.rb
... ... @@ -1,38 +0,0 @@
1   -class Kalibro::MetricConfigurationSnapshot < Kalibro::Model
2   -
3   - attr_accessor :code, :weight, :aggregation_form, :metric, :base_tool_name, :range
4   -
5   - def weight=(value)
6   - @weight = value.to_f
7   - end
8   -
9   - def metric=(value)
10   - if value.kind_of?(Hash)
11   - @metric = Kalibro::Metric.to_object(value)
12   - else
13   - @metric = value
14   - end
15   - end
16   -
17   - def range=(value)
18   - value.to_a
19   - @range = []
20   -
21   - value.each do |range_snapshot|
22   - @range << Kalibro::RangeSnapshot.to_object(range_snapshot)
23   - end
24   -
25   - end
26   -
27   - def range_snapshot
28   - range
29   - end
30   -
31   - def to_hash
32   - hash = super
33   - hash[:attributes!][:range] = {'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
34   - 'xsi:type' => 'kalibro:rangeSnapshotXml' }
35   - hash
36   - end
37   -
38   -end
plugins/mezuro/lib/kalibro/metric_result.rb
... ... @@ -1,50 +0,0 @@
1   -class Kalibro::MetricResult < Kalibro::Model
2   -
3   - attr_accessor :id, :configuration, :value, :error
4   -
5   - def initialize(attributes={})
6   - value = attributes[:value]
7   - @value = (value == "NaN") ? attributes[:aggregated_value].to_f : value.to_f
8   - attributes.each do |field, value|
9   - if field!= :value and field!= :aggregated_value and self.class.is_valid?(field)
10   - send("#{field}=", value)
11   - end
12   - end
13   - @errors = []
14   - end
15   -
16   - def id=(value)
17   - @id = value.to_i
18   - end
19   -
20   - def configuration=(value)
21   - @configuration = Kalibro::MetricConfigurationSnapshot.to_object value
22   - end
23   -
24   - def metric_configuration_snapshot
25   - configuration
26   - end
27   -
28   - def error=(value)
29   - @error = Kalibro::Throwable.to_object value
30   - end
31   -
32   - def descendant_results
33   - self.class.request(:descendant_results_of, {:metric_result_id => self.id})[:descendant_result].to_a
34   - end
35   -
36   - def self.metric_results_of(module_result_id)
37   - response = request(:metric_results_of, {:module_result_id => module_result_id})[:metric_result]
38   - response = [] if response.nil?
39   - response = [response] if response.is_a?(Hash)
40   - response.map {|metric_result| new metric_result}
41   - end
42   -
43   - def self.history_of(metric_name, module_result_id)
44   - response = self.request(:history_of_metric, {:metric_name => metric_name, :module_result_id => module_result_id})[:date_metric_result]
45   - response = [] if response.nil?
46   - response = [response] if response.is_a?(Hash)
47   - response.map {|date_metric_result| Kalibro::DateMetricResult.new date_metric_result}
48   - end
49   -
50   -end
plugins/mezuro/lib/kalibro/model.rb
... ... @@ -1,164 +0,0 @@
1   -class Kalibro::Model
2   -
3   - attr_accessor :errors
4   -
5   - def initialize(attributes={})
6   - attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
7   - @errors = []
8   - end
9   -
10   -
11   - def to_hash(options={})
12   - hash = Hash.new
13   - excepts = options[:except].nil? ? [] : options[:except]
14   - excepts << :errors
15   - fields.each do |field|
16   - if(!excepts.include?(field))
17   - field_value = send(field)
18   - if !field_value.nil?
19   - hash[field] = convert_to_hash(field_value)
20   - if field_value.is_a?(Kalibro::Model)
21   - hash = {:attributes! => {}}.merge(hash)
22   - hash[:attributes!][field.to_sym] = {
23   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
24   - 'xsi:type' => 'kalibro:' + xml_instance_class_name(field_value) }
25   - end
26   - end
27   - end
28   - end
29   - hash
30   - end
31   -
32   - def self.request(action, request_body = nil)
33   - response = client(endpoint).request(:kalibro, action) { soap.body = request_body }
34   - response.to_hash["#{action}_response".to_sym] # response is a Savon::SOAP::Response, and to_hash is a Savon::SOAP::Response method
35   - end
36   -
37   - def self.to_objects_array value
38   - array = value.kind_of?(Array) ? value : [value]
39   - array.each.collect { |element| to_object(element) }
40   - end
41   -
42   - def self.to_object value
43   - value.kind_of?(Hash) ? new(value) : value
44   - end
45   -
46   - def self.create(attributes={})
47   - new_model = new attributes
48   - new_model.save
49   - new_model
50   - end
51   -
52   - def self.find(id)
53   - if(exists?(id))
54   - new request(find_action, id_params(id))["#{class_name.underscore}".to_sym]
55   - else
56   - raise Kalibro::Errors::RecordNotFound
57   - end
58   - end
59   -
60   - def save
61   - begin
62   - self.id = self.class.request(save_action, save_params)["#{instance_class_name.underscore}_id".to_sym]
63   - true
64   - rescue Exception => exception
65   - add_error exception
66   - false
67   - end
68   - end
69   -
70   - def destroy
71   - begin
72   - self.class.request(destroy_action, destroy_params)
73   - rescue Exception => exception
74   - add_error exception
75   - end
76   - end
77   -
78   - def self.exists?(id)
79   - request(exists_action, id_params(id))[:exists]
80   - end
81   -
82   - protected
83   -
84   - def fields
85   - instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '').to_sym }
86   - end
87   -
88   - def convert_to_hash(value)
89   - return value if value.nil?
90   - return value.collect { |element| convert_to_hash(element) } if value.is_a?(Array)
91   - return value.to_hash if value.is_a?(Kalibro::Model)
92   - return self.class.date_with_milliseconds(value) if value.is_a?(DateTime)
93   - return 'INF' if value.is_a?(Float) and value.infinite? == 1
94   - return '-INF' if value.is_a?(Float) and value.infinite? == -1
95   - value.to_s
96   - end
97   -
98   - def xml_instance_class_name(object)
99   - xml_name = object.class.name
100   - xml_name["Kalibro::"] = ""
101   - xml_name[0..0] = xml_name[0..0].downcase
102   - xml_name + "Xml"
103   - end
104   -
105   - def self.client(endpoint)
106   - service_address = YAML.load_file("#{Rails.root}/plugins/mezuro/service.yml")
107   - Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl")
108   - end
109   -
110   - def self.is_valid?(field)
111   - field.to_s[0] != '@' and field != :attributes! and (field.to_s =~ /xsi/).nil?
112   - end
113   -
114   - def self.date_with_milliseconds(date)
115   - milliseconds = "." + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s
116   - date.to_s[0..18] + milliseconds + date.to_s[19..-1]
117   - end
118   -
119   - def instance_class_name
120   - self.class.name.gsub(/Kalibro::/,"")
121   - end
122   -
123   - def self.endpoint
124   - class_name
125   - end
126   -
127   - def save_action
128   - "save_#{instance_class_name.underscore}".to_sym
129   - end
130   -
131   - def save_params
132   - {instance_class_name.underscore.to_sym => self.to_hash}
133   - end
134   -
135   - def destroy_action
136   - "delete_#{instance_class_name.underscore}".to_sym
137   - end
138   -
139   - def destroy_params
140   - {"#{instance_class_name.underscore}_id".to_sym => self.id}
141   - end
142   -
143   - def self.class_name
144   - self.name.gsub(/Kalibro::/,"")
145   - end
146   -
147   - def self.exists_action
148   - "#{class_name.underscore}_exists".to_sym
149   - end
150   -
151   - def self.id_params(id)
152   - {"#{class_name.underscore}_id".to_sym => id}
153   - end
154   -
155   - def self.find_action
156   - "get_#{class_name.underscore}".to_sym
157   - end
158   -
159   - def add_error(exception)
160   - @errors << exception
161   - end
162   -
163   -end
164   -
plugins/mezuro/lib/kalibro/module.rb
... ... @@ -1,5 +0,0 @@
1   -class Kalibro::Module < Kalibro::Model
2   -
3   - attr_accessor :name, :granularity
4   -
5   -end
plugins/mezuro/lib/kalibro/module_result.rb
... ... @@ -1,48 +0,0 @@
1   -class Kalibro::ModuleResult < Kalibro::Model
2   -
3   - attr_accessor :id, :module, :grade, :parent_id, :height
4   -
5   - def self.find(id)
6   - new request(:get_module_result, { :module_result_id => id })[:module_result]
7   - end
8   -
9   - def children
10   - response = self.class.request(:children_of, {:module_result_id => id})[:module_result]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map {|module_result| Kalibro::ModuleResult.new module_result}
14   - end
15   -
16   - def parents
17   - if parent_id.nil?
18   - []
19   - else
20   - parent = self.class.find(parent_id)
21   - parent.parents << parent
22   - end
23   - end
24   -
25   - def id=(value)
26   - @id = value.to_i
27   - end
28   -
29   - def module=(value)
30   - @module = Kalibro::Module.to_object value
31   - end
32   -
33   - def grade=(value)
34   - @grade = value.to_f
35   - end
36   -
37   - def parent_id=(value)
38   - @parent_id = value.to_i
39   - end
40   -
41   - def self.history_of(module_result_id)
42   - response = self.request(:history_of_module, {:module_result_id => module_result_id})[:date_module_result]
43   - response = [] if response.nil?
44   - response = [response] if response.is_a?(Hash)
45   - response.map {|date_module_result| Kalibro::DateModuleResult.new date_module_result}
46   - end
47   -
48   -end
plugins/mezuro/lib/kalibro/process_time.rb
... ... @@ -1,9 +0,0 @@
1   -class Kalibro::ProcessTime < Kalibro::Model
2   -
3   - attr_accessor :state, :time
4   -
5   - def time=(time)
6   - @time = time.to_i
7   - end
8   -
9   -end
plugins/mezuro/lib/kalibro/processing.rb
... ... @@ -1,94 +0,0 @@
1   -class Kalibro::Processing < Kalibro::Model
2   -
3   - attr_accessor :id, :date, :state, :error, :process_time, :results_root_id
4   -
5   - def self.processing_of(repository_id)
6   - if has_ready_processing(repository_id)
7   - last_ready_processing_of(repository_id)
8   - else #always exists a processing, we send a requisition to kalibro to process repository
9   - last_processing_of(repository_id)
10   - end
11   - end
12   -
13   - def self.processing_with_date_of(repository_id, date)
14   - date = date.is_a?(String) ? DateTime.parse(date) : date
15   - if has_processing_after(repository_id, date)
16   - first_processing_after(repository_id, date)
17   - elsif has_processing_before(repository_id, date)
18   - last_processing_before(repository_id, date)
19   - else
20   - last_processing_of(repository_id)
21   - end
22   - end
23   -
24   - def id=(value)
25   - @id = value.to_i
26   - end
27   -
28   - def date=(value)
29   - @date = value.is_a?(String) ? DateTime.parse(value) : value
30   - end
31   -
32   - def process_times=(value)
33   - process_time=value
34   - end
35   -
36   - def process_time=(value)
37   - @process_time = Kalibro::ProcessTime.to_objects_array value
38   - end
39   -
40   - def process_times
41   - process_time
42   - end
43   -
44   - def error=(value)
45   - @error = Kalibro::Throwable.to_object value
46   - end
47   -
48   - def results_root_id=(value)
49   - @results_root_id = value.to_i
50   - end
51   -
52   - private
53   -
54   - def self.has_processing(repository_id)
55   - request(:has_processing, {:repository_id => repository_id})[:exists]
56   - end
57   -
58   - def self.has_ready_processing(repository_id)
59   - request(:has_ready_processing, {:repository_id => repository_id})[:exists]
60   - end
61   -
62   - def self.has_processing_after(repository_id, date)
63   - request(:has_processing_after, {:repository_id => repository_id, :date => date})[:exists]
64   - end
65   -
66   - def self.has_processing_before(repository_id, date)
67   - request(:has_processing_before, {:repository_id => repository_id, :date => date})[:exists]
68   - end
69   -
70   - def self.last_processing_state_of(repository_id)
71   - request(:last_processing_state, {:repository_id => repository_id})[:process_state]
72   - end
73   -
74   - def self.last_ready_processing_of(repository_id)
75   - new request(:last_ready_processing, {:repository_id => repository_id})[:processing]
76   - end
77   -
78   - def self.first_processing_of(repository_id)
79   - new request(:first_processing, {:repository_id => repository_id})[:processing]
80   - end
81   -
82   - def self.last_processing_of(repository_id)
83   - new request(:last_processing, {:repository_id => repository_id})[:processing]
84   - end
85   -
86   - def self.first_processing_after(repository_id, date)
87   - new request(:first_processing_after, {:repository_id => repository_id, :date => date})[:processing]
88   - end
89   -
90   - def self.last_processing_before(repository_id, date)
91   - new request(:last_processing_before, {:repository_id => repository_id, :date => date})[:processing]
92   - end
93   -
94   -end
plugins/mezuro/lib/kalibro/project.rb
... ... @@ -1,15 +0,0 @@
1   -class Kalibro::Project < Kalibro::Model
2   -
3   - attr_accessor :id, :name, :description
4   -
5   - def id=(value)
6   - @id = value.to_i
7   - end
8   -
9   - def self.all
10   - response = request(:all_projects)[:project]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map {|project| new project}
14   - end
15   -end
plugins/mezuro/lib/kalibro/range.rb
... ... @@ -1,78 +0,0 @@
1   -class Kalibro::Range < Kalibro::Model
2   -
3   - attr_accessor :id, :beginning, :end, :reading_id, :comments
4   -
5   - def id=(value)
6   - @id = value.to_i
7   - end
8   -
9   - def beginning=(value)
10   - @beginning = value.to_f
11   - @beginning = -1.0/0.0 if value == "-INF"
12   - end
13   -
14   - def beginning
15   - if !@beginning.nil?
16   - case @beginning.to_s
17   - when "-Infinity": "-INF"
18   - else @beginning
19   - end
20   - end
21   - end
22   -
23   - def end=(value)
24   - @end = value.to_f
25   - @end = 1.0/0.0 if value =~ /INF/
26   - end
27   -
28   - def end
29   - if !@end.nil?
30   - case @end.to_s
31   - when "Infinity": "INF"
32   - else @end
33   - end
34   - end
35   - end
36   -
37   - def reading_id=(value)
38   - @reading_id = value.to_i
39   - end
40   -
41   - def label
42   - reading.label
43   - end
44   -
45   - def grade
46   - reading.grade
47   - end
48   -
49   - def color
50   - reading.color
51   - end
52   -
53   - def self.ranges_of( metric_configuration_id )
54   - response = request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range]
55   - response = [] if response.nil?
56   - response = [response] if response.is_a?(Hash)
57   - response.map { |range| new range }
58   - end
59   -
60   - def save( metric_configuration_id )
61   - begin
62   - self.id = self.class.request(:save_range, {:range => self.to_hash, :metric_configuration_id => metric_configuration_id})[:range_id]
63   - true
64   - rescue Exception => exception
65   - add_error exception
66   - false
67   - end
68   - end
69   -
70   - private
71   -
72   - def reading
73   - @reading ||= Kalibro::Reading.find(reading_id)
74   - @reading
75   - end
76   -
77   -end
78   -
plugins/mezuro/lib/kalibro/range_snapshot.rb
... ... @@ -1,17 +0,0 @@
1   -class Kalibro::RangeSnapshot < Kalibro::Model
2   -
3   - attr_accessor :beginning, :end, :label, :grade, :color, :comments
4   -
5   - def beginning=(value)
6   - @beginning = ((value == "-INF") ? -1.0/0 : value.to_f)
7   - end
8   -
9   - def end=(value)
10   - @end = ((value == "INF") ? 1.0/0 : value.to_f)
11   - end
12   -
13   - def grade=(value)
14   - @grade = value.to_f
15   - end
16   -
17   -end
plugins/mezuro/lib/kalibro/reading.rb
... ... @@ -1,34 +0,0 @@
1   -class Kalibro::Reading < Kalibro::Model
2   -
3   - attr_accessor :id, :label, :grade, :color, :group_id
4   -
5   - def self.find(id)
6   - new request(:get_reading, {:reading_id => id})[:reading]
7   - end
8   -
9   - def self.readings_of( group_id )
10   - response = request(:readings_of, {:group_id => group_id})[:reading]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map { |reading| new reading }
14   - end
15   -
16   - def self.reading_of( range_id )
17   - new request(:reading_of, {:range_id => range_id} )[:reading]
18   - end
19   -
20   - def id=(value)
21   - @id = value.to_i
22   - end
23   -
24   - def grade=(value)
25   - @grade = value.to_f
26   - end
27   -
28   - private
29   -
30   - def save_params
31   - {:reading => self.to_hash, :group_id => group_id}
32   - end
33   -
34   -end
plugins/mezuro/lib/kalibro/reading_group.rb
... ... @@ -1,30 +0,0 @@
1   -class Kalibro::ReadingGroup < Kalibro::Model
2   -
3   - attr_accessor :id, :name, :description
4   -
5   - def id=(value)
6   - @id = value.to_i
7   - end
8   -
9   - def self.all
10   - response = request(:all_reading_groups)[:reading_group]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map { |reading_group| new reading_group }
14   - end
15   -
16   - def self.reading_group_of( metric_configuration_id )
17   - new request(:reading_group_of, {:metric_configuration_id => metric_configuration_id} )[:reading_group]
18   - end
19   -
20   - private
21   -
22   - def self.id_params(id)
23   - {:group_id => id}
24   - end
25   -
26   - def destroy_params
27   - {:group_id => self.id}
28   - end
29   -
30   -end
plugins/mezuro/lib/kalibro/repository.rb
... ... @@ -1,42 +0,0 @@
1   -class Kalibro::Repository < Kalibro::Model
2   -
3   - attr_accessor :id, :name, :description, :license, :process_period, :type, :address, :configuration_id, :project_id
4   -
5   - def self.repository_types
6   - request(:supported_repository_types)[:supported_type].to_a
7   - end
8   -
9   - def self.repositories_of(project_id)
10   - response = request(:repositories_of, {:project_id => project_id})[:repository]
11   - response = [] if response.nil?
12   - response = [response] if response.is_a?(Hash)
13   - response.map {|repository| new repository}
14   - end
15   -
16   - def id=(value)
17   - @id = value.to_i
18   - end
19   -
20   - def process_period=(value)
21   - @process_period = value.to_i
22   - end
23   -
24   - def configuration_id=(value)
25   - @configuration_id = value.to_i
26   - end
27   -
28   - def process
29   - self.class.request(:process_repository, {:repository_id => self.id})
30   - end
31   -
32   - def cancel_processing_of_repository
33   - self.class.request(:cancel_processing_of_repository, {:repository_id => self.id})
34   - end
35   -
36   - private
37   -
38   - def save_params
39   - {:repository => self.to_hash, :project_id => project_id}
40   - end
41   -
42   -end
plugins/mezuro/lib/kalibro/stack_trace_element.rb
... ... @@ -1,9 +0,0 @@
1   -class Kalibro::StackTraceElement < Kalibro::Model
2   -
3   - attr_accessor :declaring_class, :method_name, :file_name, :line_number
4   -
5   - def line_number=(value)
6   - @line_number = value.to_i
7   - end
8   -
9   -end
plugins/mezuro/lib/kalibro/throwable.rb
... ... @@ -1,21 +0,0 @@
1   -class Kalibro::Throwable < Kalibro::Model
2   -
3   - attr_accessor :target_string, :message, :cause, :stack_trace_element
4   -
5   - def stack_trace_element=(value)
6   - @stack_trace_element = Kalibro::StackTraceElement.to_objects_array value
7   - end
8   -
9   - def stack_trace
10   - @stack_trace_element
11   - end
12   -
13   - def stack_trace=(stack_trace)
14   - @stack_trace_element = stack_trace
15   - end
16   -
17   - def cause=(cause_value)
18   - @cause = Kalibro::Throwable.to_object cause_value
19   - end
20   -
21   -end
plugins/mezuro/lib/mezuro_plugin.rb
... ... @@ -1,39 +0,0 @@
1   -require 'yaml'
2   -
3   -Savon.configure do |config|
4   - config.log = HTTPI.log = (RAILS_ENV == 'development')
5   -end
6   -
7   -class MezuroPlugin < Noosfero::Plugin
8   -
9   - def self.plugin_name
10   - "Mezuro"
11   - end
12   -
13   - def self.plugin_description
14   - _("A metric analizer plugin.")
15   - end
16   -
17   - def content_types
18   - if context.profile.is_a?(Community)
19   - MezuroPlugin::ProjectContent
20   - else
21   - [MezuroPlugin::ConfigurationContent,
22   - MezuroPlugin::ReadingGroupContent]
23   - end
24   - end
25   -
26   - def control_panel_buttons
27   - if context.profile.is_a?(Community)
28   - {:title => _('Mezuro project'), :url => {:controller => 'cms', :action => 'new', :profile => context.profile.identifier, :type => 'MezuroPlugin::ProjectContent'}, :icon => 'mezuro' }
29   - else
30   - [{:title => _('Mezuro configuration'), :url => {:controller => 'cms', :action => 'new', :profile => context.profile.identifier, :type => 'MezuroPlugin::ConfigurationContent'}, :icon => 'mezuro' },
31   - {:title => _('Mezuro reading group'), :url => {:controller => 'cms', :action => 'new', :profile => context.profile.identifier, :type => 'MezuroPlugin::ReadingGroupContent'}, :icon => 'mezuro' }]
32   - end
33   - end
34   -
35   - def stylesheet?
36   - true
37   - end
38   -
39   -end
plugins/mezuro/lib/mezuro_plugin/configuration_content.rb
... ... @@ -1,138 +0,0 @@
1   -class MezuroPlugin::ConfigurationContent < Article
2   - validate_on_create :validate_configuration_name
3   -
4   - settings_items :configuration_id
5   -
6   - before_save :send_configuration_to_service
7   - after_destroy :remove_configuration_from_service
8   -
9   - def self.short_description
10   - 'Mezuro configuration'
11   - end
12   -
13   - def self.description
14   - 'Set of metric configurations to interpret a Kalibro project'
15   - end
16   -
17   - include ActionView::Helpers::TagHelper
18   - def to_html(options = {})
19   - lambda do
20   - render :file => 'content_viewer/show_configuration.rhtml'
21   - end
22   - end
23   -
24   - def kalibro_configuration #Can't be just "configuration", method name exists somewhere in noosfero
25   - begin
26   - @configuration ||= Kalibro::Configuration.find(self.configuration_id)
27   - rescue Exception => exception
28   - errors.add_to_base(exception.message)
29   - @configuration = nil
30   - end
31   - @configuration
32   - end
33   -
34   - def configuration_names_and_ids
35   - begin
36   - all_configurations = Kalibro::Configuration.all
37   - all_names_and_ids = all_configurations.map { |configuration| [configuration.name, configuration.id] }
38   - [["None", -1]] + (all_names_and_ids.sort { |x,y| x.first.downcase <=> y.first.downcase })
39   - rescue Exception => exception
40   - errors.add_to_base(exception.message)
41   - [["None", -1]]
42   - end
43   -
44   - end
45   -
46   - def description=(value)
47   - @description=value
48   - end
49   -
50   - def description
51   - begin
52   - @description ||= kalibro_configuration.description
53   - rescue
54   - @description = ""
55   - end
56   - @description
57   - end
58   -
59   - def configuration_to_clone_id
60   - begin
61   - @configuration_to_clone_id
62   - rescue Exception => exception
63   - nil
64   - end
65   - end
66   -
67   - def configuration_to_clone_id=(value)
68   - @configuration_to_clone_id = (value == -1) ? nil : value
69   - end
70   -
71   - def metric_configurations
72   - begin
73   - @metric_configurations ||= Kalibro::MetricConfiguration.metric_configurations_of(configuration_id)
74   - rescue Exception => error
75   - errors.add_to_base(error.message)
76   - @metric_configurations = []
77   - end
78   - @metric_configurations
79   - end
80   -
81   - def metric_configurations=(value)
82   - @metric_configurations = value.kind_of?(Array) ? value : [value]
83   - @metric_configurations = @metric_configurations.map { |element| to_metric_configuration(element) }
84   - end
85   -
86   - private
87   -
88   - def self.to_metric_configuration value
89   - value.kind_of?(Hash) ? Kalibro::MetricConfiguration.new(value) : value
90   - end
91   -
92   - def validate_configuration_name
93   - existing = configuration_names_and_ids.map { |a| a.first.downcase}
94   -
95   - if existing.include?(name.downcase)
96   - errors.add_to_base("Configuration name already exists in Kalibro")
97   - end
98   - end
99   -
100   - def remove_configuration_from_service
101   - kalibro_configuration.destroy unless kalibro_configuration.nil?
102   - end
103   -
104   - def send_configuration_to_service
105   - attributes = {:id => configuration_id, :name => name, :description => description}
106   - created_configuration = Kalibro::Configuration.create attributes
107   - self.configuration_id = created_configuration.id
108   - clone_configuration if cloning_configuration?
109   - end
110   -
111   - def cloning_configuration?
112   - !configuration_to_clone_id.nil?
113   - end
114   -
115   - def clone_configuration
116   - metric_configurations_to_clone ||= Kalibro::MetricConfiguration.metric_configurations_of(configuration_to_clone_id)
117   - clone_metric_configurations metric_configurations_to_clone
118   - end
119   -
120   - def clone_metric_configurations metric_configurations_to_clone
121   - metric_configurations_to_clone.each do |metric_configuration|
122   - clonned_metric_configuration_id = metric_configuration.id
123   - metric_configuration.id = nil
124   - metric_configuration.configuration_id = self.configuration_id
125   - metric_configuration.save
126   - clone_ranges clonned_metric_configuration_id, metric_configuration.id
127   - end
128   - end
129   -
130   - def clone_ranges clonned_metric_configuration_id, new_metric_configuration_id
131   - Kalibro::Range.ranges_of(clonned_metric_configuration_id).each do |range|
132   - range.id = nil
133   - range.save new_metric_configuration_id
134   - end
135   - end
136   -
137   -end
138   -
plugins/mezuro/lib/mezuro_plugin/helpers/content_viewer_helper.rb
... ... @@ -1,80 +0,0 @@
1   -class MezuroPlugin::Helpers::ContentViewerHelper
2   -
3   - MAX_NUMBER_OF_LABELS = 5
4   -
5   - def self.format_grade(grade)
6   - sprintf("%.2f", grade.to_f)
7   - end
8   -
9   - def self.periodicity_options
10   - [["Not Periodically", 0], ["1 day", 1], ["2 days", 2], ["Weekly", 7], ["Biweekly", 15], ["Monthly", 30]]
11   - end
12   -
13   - def self.periodicity_option(periodicity)
14   - periodicity_options.select {|x| x.last == periodicity}.first.first
15   - end
16   -
17   - def self.license_options
18   - options = YAML.load_file("#{Rails.root}/plugins/mezuro/licenses.yml")
19   - options = options.split("; ")
20   - options
21   - end
22   -
23   - def self.generate_chart(score_history)
24   - values = []
25   - labels = []
26   - score_history.each do |score_data|
27   - values << score_data.result
28   - labels << score_data.date
29   - end
30   - labels = discretize_array labels
31   - Gchart.line(
32   - :title_color => 'FF0000',
33   - :size => '600x180',
34   - :bg => {:color => 'efefef', :type => 'stripes'},
35   - :line_colors => 'c4a000',
36   - :data => values,
37   - :labels => labels,
38   - :axis_with_labels => ['y','x'],
39   - :max_value => values.max,
40   - :min_value => values.min
41   - )
42   - end
43   -
44   - def self.format_name(metric_configuration_snapshot)
45   - metric_configuration_snapshot.metric.name.delete("() ")
46   - end
47   -
48   - def self.format_time(miliseconds)
49   - seconds = miliseconds/1000
50   - MezuroPluginModuleResultController.helpers.distance_of_time_in_words(0, seconds, include_seconds = true)
51   - end
52   -
53   - def self.aggregation_options
54   - [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
55   - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]]
56   - end
57   -
58   - def self.scope_options
59   - [["Software", "SOFTWARE"], ["Package", "PACKAGE"], ["Class", "CLASS"], ["Method", "METHOD"]]
60   - end
61   -
62   - private
63   -
64   - def self.discretize_array(array)
65   - if array.size > MAX_NUMBER_OF_LABELS
66   - range_array.map { |i| discrete_element(array, i)}
67   - else
68   - array
69   - end
70   - end
71   -
72   - def self.range_array
73   - (0..(MAX_NUMBER_OF_LABELS - 1)).to_a
74   - end
75   -
76   - def self.discrete_element(array, i)
77   - array[(i*(array.size - 1))/(MAX_NUMBER_OF_LABELS - 1)]
78   - end
79   -
80   -end
plugins/mezuro/lib/mezuro_plugin/helpers/module_result_helper.rb
... ... @@ -1,7 +0,0 @@
1   -class MezuroPlugin::Helpers::ModuleResultHelper
2   -
3   - def self.module_name name
4   - name.is_a?(Array) ? name.last : name
5   - end
6   -
7   -end
plugins/mezuro/lib/mezuro_plugin/project_content.rb
... ... @@ -1,96 +0,0 @@
1   -class MezuroPlugin::ProjectContent < Article
2   - include ActionView::Helpers::TagHelper
3   -
4   - settings_items :project_id
5   -
6   - before_save :send_project_to_service
7   - after_destroy :destroy_project_from_service
8   -
9   - def self.short_description
10   - 'Mezuro project'
11   - end
12   -
13   - def self.description
14   - 'Software project tracked by Kalibro'
15   - end
16   -
17   - def to_html(options = {})
18   - lambda do
19   - render :file => 'content_viewer/show_project.rhtml'
20   - end
21   - end
22   -
23   - def project
24   - begin
25   - @project ||= Kalibro::Project.find(project_id)
26   - rescue Exception => error
27   - errors.add_to_base(error.message)
28   - end
29   - @project
30   - end
31   -
32   - def repositories
33   - begin
34   - @repositories ||= Kalibro::Repository.repositories_of(project_id)
35   - rescue Exception => error
36   - errors.add_to_base(error.message)
37   - @repositories = []
38   - end
39   - @repositories
40   - end
41   -
42   - def description=(value)
43   - @description=value
44   - end
45   -
46   - def description
47   - begin
48   - @description ||= project.description
49   - rescue
50   - @description = ""
51   - end
52   - @description
53   - end
54   -
55   - def repositories=(value)
56   - @repositories = value.kind_of?(Array) ? value : [value]
57   - @repositories = @repositories.map { |element| to_repository(element) }
58   - end
59   -
60   - private
61   -
62   - def self.to_repository value
63   - value.kind_of?(Hash) ? Kalibro::Repository.new(value) : value
64   - end
65   -
66   - def validate_repository_address
67   - repositories.each do |repository|
68   - if (!repository.nil?)
69   - address = repository.address
70   - if(address.nil? || address == "")
71   - errors.add_to_base("Repository Address is mandatory")
72   - end
73   - else
74   - errors.add_to_base("Repository is mandatory")
75   - end
76   - end
77   - end
78   -
79   - def send_project_to_service
80   - created_project = create_kalibro_project
81   - self.project_id = created_project.id
82   - end
83   -
84   - def create_kalibro_project
85   - Kalibro::Project.create(
86   - :name => name,
87   - :description => description,
88   - :id => self.project_id
89   - )
90   - end
91   -
92   - def destroy_project_from_service
93   - project.destroy unless project.nil?
94   - end
95   -
96   -end
plugins/mezuro/lib/mezuro_plugin/reading_group_content.rb
... ... @@ -1,83 +0,0 @@
1   -class MezuroPlugin::ReadingGroupContent < Article
2   - include ActionView::Helpers::TagHelper
3   -
4   - settings_items :reading_group_id
5   -
6   - before_save :send_reading_group_to_service
7   - after_destroy :destroy_reading_group_from_service
8   -
9   - def self.short_description
10   - 'Mezuro reading group'
11   - end
12   -
13   - def self.description
14   - 'Set of thresholds to interpret metric results'
15   - end
16   -
17   - def to_html(options = {})
18   - lambda do
19   - render :file => 'content_viewer/show_reading_group.rhtml'
20   - end
21   - end
22   -
23   - def reading_group
24   - begin
25   - @reading_group ||= Kalibro::ReadingGroup.find(reading_group_id)
26   - rescue Exception => error
27   - errors.add_to_base(error.message)
28   - end
29   - @reading_group
30   - end
31   -
32   - def readings
33   - begin
34   - @readings ||= Kalibro::Reading.readings_of(reading_group_id)
35   - rescue Exception => error
36   - errors.add_to_base(error.message)
37   - @readings = []
38   - end
39   - @readings
40   - end
41   -
42   - def description=(value)
43   - @description=value
44   - end
45   -
46   - def description
47   - begin
48   - @description ||= reading_group.description
49   - rescue
50   - @description = ""
51   - end
52   - @description
53   - end
54   -
55   - def readings=(value)
56   - @readings = value.kind_of?(Array) ? value : [value]
57   - @readings = @readings.map { |element| to_reading(element) }
58   - end
59   -
60   - private
61   -
62   - def self.to_reading value
63   - value.kind_of?(Hash) ? Kalibro::Reading.new(value) : value
64   - end
65   -
66   - def send_reading_group_to_service
67   - created_reading_group = create_kalibro_reading_group
68   - self.reading_group_id = created_reading_group.id
69   - end
70   -
71   - def create_kalibro_reading_group
72   - Kalibro::ReadingGroup.create(
73   - :name => name,
74   - :description => description,
75   - :id => self.reading_group_id
76   - )
77   - end
78   -
79   - def destroy_reading_group_from_service
80   - reading_group.destroy unless reading_group.nil?
81   - end
82   -
83   -end
plugins/mezuro/licenses.yml.example
... ... @@ -1,69 +0,0 @@
1   -Academic Free License 3.0 (AFL-3.0);
2   -Affero GNU Public License (AGPL-3.0);
3   -Adaptive Public License (APL-1.0);
4   -Apache License 2.0 (Apache-2.0);
5   -Apple Public Source License (APSL-2.0);
6   -Artistic license 2.0 (Artistic-2.0);
7   -Attribution Assurance Licenses (AAL);
8   -BSD 3-Clause "New" or "Revised" License (BSD-3-Clause);
9   -BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause);
10   -Boost Software License (BSL-1.0);
11   -Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1);
12   -Common Development and Distribution License 1.0 (CDDL-1.0);
13   -Common Public Attribution License 1.0 (CPAL-1.0);
14   -CUA Office Public License Version 1.0 (CUA-OPL-1.0);
15   -EU DataGrid Software License (EUDatagrid);
16   -Eclipse Public License 1.0 (EPL-1.0);
17   -Educational Community License, Version 2.0 (ECL-2.0);
18   -Eiffel Forum License V2.0 (EFL-2.0);
19   -Entessa Public License (Entessa);
20   -European Union Public License, Version 1.1 (EUPL-1.1);
21   -Fair License (FAIR);
22   -Frameworx License (Frameworx-1.0);
23   -GNU Affero General Public License v3 (AGPL-3.0);
24   -GNU General Public License version 2.0 (GPL-2.0);
25   -GNU General Public License version 3.0 (GPL-3.0);
26   -GNU Library or "Lesser" General Public License version 2.1 (LGPL-2.1);
27   -GNU Library or "Lesser" General Public License version 3.0 (LGPL-3.0);
28   -Historical Permission Notice and Disclaimer (HPND);
29   -IBM Public License 1.0 (IPL-1.0);
30   -IPA Font License (IPA);
31   -ISC License (ISC);
32   -LaTeX Project Public License 1.3c (LPPL-1.3c);
33   -Lucent Public License Version 1.02 (LPL-1.02);
34   -MirOS Licence (MirOS);
35   -Microsoft Public License (Ms-PL);
36   -Microsoft Reciprocal License (Ms-RL);
37   -MIT license (MIT);
38   -Motosoto License (Motosoto);
39   -Mozilla Public License 2.0 (MPL-2.0);
40   -Multics License (Multics);
41   -NASA Open Source Agreement 1.3 (NASA 1.3);
42   -NTP License (NTP);
43   -Naumen Public License (Naumen);
44   -Nethack General Public License (NGPL);
45   -Nokia Open Source License (Nokia);
46   -Non-Profit Open Software License 3.0 (NPOSL-3.0);
47   -OCLC Research Public License 2.0 (OCLC-2.0);
48   -Open Font License 1.1 (OFL 1.1);
49   -Open Group Test Suite License (OGTSL);
50   -Open Software License 3.0 (OSL-3.0);
51   -PHP License 3.0 (PHP-3.0);
52   -The PostgreSQL License (PostgreSQL);
53   -Python License (Python-2.0);
54   -CNRI Python license (CNRI-Python);
55   -Q Public License (QPL-1.0);
56   -RealNetworks Public Source License V1.0 (RPSL-1.0);
57   -Reciprocal Public License 1.5 (RPL-1.5);
58   -Ricoh Source Code Public License (RSCPL);
59   -Simple Public License 2.0 (SimPL-2.0);
60   -Sleepycat License (Sleepycat);
61   -Sun Public License 1.0 (SPL-1.0);
62   -Sybase Open Watcom Public License 1.0 (Watcom-1.0);
63   -University of Illinois/NCSA Open Source License (NCSA);
64   -Vovida Software License v. 1.0 (VSL-1.0);
65   -W3C License (W3C);
66   -wxWindows Library License (WXwindows);
67   -X.Net License (Xnet);
68   -Zope Public License 2.0 (ZPL-2.0);
69   -zlib/libpng license (Zlib)
plugins/mezuro/public/colorPicker.css
... ... @@ -1,31 +0,0 @@
1   -div.colorPicker-picker {
2   - height: 16px;
3   - width: 16px;
4   - padding: 0 !important;
5   - border: 1px solid #ccc;
6   - background: url(arrow.gif) no-repeat top right;
7   - cursor: pointer;
8   - line-height: 16px;
9   -}
10   -
11   -div.colorPicker-palette {
12   - width: 110px;
13   - position: absolute;
14   - border: 1px solid #598FEF;
15   - background-color: #EFEFEF;
16   - padding: 2px;
17   - z-index: 9999;
18   -}
19   - div.colorPicker_hexWrap {width: 100%; float:left }
20   - div.colorPicker_hexWrap label {font-size: 95%; color: #2F2F2F; margin: 5px 2px; width: 25%}
21   - div.colorPicker_hexWrap input {margin: 5px 2px; padding: 0; font-size: 95%; border: 1px solid #000; width: 65%; }
22   -
23   -div.colorPicker-swatch {
24   - height: 12px;
25   - width: 12px;
26   - border: 1px solid #000;
27   - margin: 2px;
28   - float: left;
29   - cursor: pointer;
30   - line-height: 12px;
31   -}
plugins/mezuro/public/icons/mezuro.png

3.82 KB

plugins/mezuro/public/images/file.png

534 Bytes

plugins/mezuro/public/images/folder.png

3.31 KB

plugins/mezuro/public/images/minus.png

215 Bytes

plugins/mezuro/public/images/plus.png

400 Bytes

plugins/mezuro/public/javascripts/processing.js
... ... @@ -1,133 +0,0 @@
1   -var processingTree = false;
2   -var metricName;
3   -jQuery(function (){
4   - jQuery('.source-tree-link').live("click", reloadModule);
5   - jQuery('[show-metric-history]').live("click", display_metric_history);
6   - jQuery('[show-grade-history]').live("click", display_grade_history);
7   - jQuery('#project_date_submit').live("click", reloadProcessingWithDate);
8   - showLoadingProcess(true);
9   - showProcessing();
10   -});
11   -
12   -function showProcessing() {
13   - repository_id = processingData('repository-id');
14   - callAction('processing', 'state', {repository_id: repository_id}, showProcessingFor);
15   -}
16   -
17   -function display_metric_history() {
18   - var module_result_id = jQuery(this).attr('data-module-id');
19   - var formatted_name = jQuery(this).attr('show-metric-history');
20   - var metric_name = jQuery(this).attr('data-metric-name');
21   - toggle_mezuro("." + formatted_name);
22   - metricName = formatted_name;
23   - callAction('module_result', 'metric_result_history', {metric_name: metric_name, module_result_id: module_result_id}, show_metrics);
24   - return false;
25   -}
26   -
27   -function display_grade_history() {
28   - var module_result_id = jQuery(this).attr('data-module-id');
29   - toggle_mezuro("#historical-grade");
30   - callAction('module_result', 'module_result_history', {module_result_id: module_result_id}, show_grades);
31   - return false;
32   -}
33   -
34   -function show_metrics(content) {
35   - jQuery('#historical-' + metricName).html(content);
36   -}
37   -
38   -function show_grades(content) {
39   - jQuery('#historical-grade').html(content);
40   -}
41   -
42   -function toggle_mezuro(element){
43   - jQuery(element).toggle();
44   - return false;
45   -}
46   -
47   -function reloadModule(){
48   - var module_result_id = jQuery(this).attr('data-module-id');
49   - showLoadingProcess(false);
50   - processingTree = true;
51   - callAction('module_result', 'module_result', {module_result_id: module_result_id}, showModuleResult);
52   - return false;
53   -}
54   -
55   -function reloadProcessingWithDate(date){
56   - reloadProcessing(date + "T00:00:00+00:00");
57   - return false;
58   -}
59   -
60   -function reloadProcessing(date){
61   - repository_id = processingData('repository-id');
62   - showLoadingProcess(true);
63   -
64   - callAction('processing', 'processing', {date: date, repository_id: repository_id}, function(content){
65   - showReadyProcessing(content);
66   - var module_result_id = jQuery("#module_result_root_id").attr('module_result_root_id');
67   - callAction('module_result', 'module_result', {module_result_id: module_result_id}, showModuleResult);
68   - }
69   - );
70   -}
71   -
72   -function showProcessingFor(state){
73   - repository_id = processingData('repository-id');
74   - if (state == 'ERROR') {
75   - jQuery('#processing-state').html('<div style="color:Red">ERROR</div>');
76   - callAction('processing', 'processing', {repository_id: repository_id}, showReadyProcessing);
77   - showModuleResult('');
78   - }
79   - else if (state == 'READY') {
80   - jQuery('#msg-time').html('');
81   - jQuery('#processing-state').html('<div style="color:Green">READY</div>');
82   - callAction('processing', 'processing', {repository_id: repository_id}, function(content){
83   - showReadyProcessing(content);
84   - var module_result_id = jQuery("#module_result_root_id").attr('module_result_root_id');
85   - callAction('module_result', 'module_result', {module_result_id: module_result_id}, showModuleResult);
86   - }
87   - );
88   - }
89   - else if (state.endsWith("ING")) {
90   - jQuery('#processing-state').html('<div style="color:DarkGoldenRod">'+ state +'</div>');
91   - jQuery('#msg-time').html("The project analysis may take long. <br/> You'll receive an e-mail when it's ready!");
92   - showProcessingAfter(20);
93   - }
94   -}
95   -
96   -function showProcessingAfter(seconds){
97   - if (seconds > 0){
98   - setTimeout(function() { showProcessingAfter(seconds - 10);}, 10000);
99   - } else {
100   - showProcessing();
101   - }
102   -}
103   -
104   -function showReadyProcessing(content) {
105   - jQuery('#processing').html(content);
106   -}
107   -
108   -function showModuleResult(content){
109   - jQuery('#module-result').html(content);
110   -}
111   -
112   -function callAction(controller, action, params, callback){
113   - var profile = processingData('profile');
114   - var content = processingData('content');
115   - var endpoint = '/profile/' + profile + '/plugin/mezuro/' + controller + '/' + action + '/' + content;
116   - jQuery.get(endpoint, params, callback);
117   -}
118   -
119   -function processingData(data){
120   - return jQuery('#processing').attr('data-' + data);
121   -}
122   -
123   -function showLoadingProcess(firstLoad){
124   - if(firstLoad)
125   - showReadyProcessing("<img src='/images/loading-small.gif'/>");
126   - showModuleResult("<img src='/images/loading-small.gif'/>");
127   -}
128   -
129   -function sourceNodeToggle(id){
130   - var suffixes = ['_hidden', '_plus', '_minus'];
131   - for (var i in suffixes)
132   - jQuery('#' + id + suffixes[i]).toggle();
133   -}
plugins/mezuro/public/javascripts/validations.js
... ... @@ -1,181 +0,0 @@
1   -jQuery(function (){
2   - jQuery('#range_submit').live("click", validate_new_range_configuration);
3   - jQuery('#metric_configuration_submit').live("click", validate_metric_configuration);
4   - jQuery('#repository_submit').live("click", validate_new_repository);
5   - jQuery('#reading_submit').live("click", validate_new_reading);
6   -});
7   -
8   -function validate_code(code){
9   - return true;
10   -}
11   -
12   -function allRequiredFieldsAreFilled() {
13   - var name = jQuery('#repository_name').val();
14   - var address = jQuery('#repository_address').val();
15   -
16   - if (is_null(name) || is_null(address)) {
17   - alert("Please fill all fields marked with (*).");
18   - return false;
19   - }
20   - return true;
21   -}
22   -
23   -function validate_new_reading() {
24   - var name = jQuery('#reading_label').val();
25   - var grade = jQuery('#reading_grade').val();
26   - var color = jQuery('#reading_color').val();
27   -
28   - if (is_null(name) || is_null(grade) || is_null(color)){
29   - alert("Please fill all fields marked with (*).");
30   - return false;
31   - }
32   -
33   - var parser = jQuery('#labels_and_grades').attr('data-parser');
34   - var labels_and_grades = jQuery('#labels_and_grades').attr('data-list').split(parser);
35   - for (var id = 0; id < labels_and_grades.length; id = id + 2) {
36   - if (labels_and_grades[id] == name) {
37   - alert("This label already exists! Please, choose another one.");
38   - return false;
39   - }
40   -
41   - if (labels_and_grades[id+1] == grade || labels_and_grades[id+1] == grade + ".0") {
42   - alert("This grade already exists! Please, choose another one.");
43   - return false;
44   - }
45   - }
46   -
47   - if (!color.match(/^[a-fA-F0-9]{6}$/)) {
48   - alert("This is not a valid color.");
49   - return false;
50   - }
51   - return true;
52   -}
53   -
54   -function validate_new_repository() {
55   - if (allRequiredFieldsAreFilled()) {
56   - return addressAndTypeMatch();
57   - }
58   - return false;
59   -}
60   -
61   -function addressAndTypeMatch() {
62   - var type = jQuery('#repository_type').val();
63   - var address = jQuery('#repository_address').val();
64   -
65   - switch (type) {
66   - case "BAZAAR": return matchBazaar(address);
67   - case "CVS": return matchCVS(address);
68   - case "GIT": return matchGIT(address);
69   - case "MERCURIAL": return matchMercurial(address);
70   - case "REMOTE_TARBALL": return matchRemoteTarball(address);
71   - case "REMOTE_ZIP": return matchRemoteZIP(address);
72   - case "SUBVERSION": return matchSubversion(address);
73   - }
74   -}
75   -
76   -function matchBazaar(address) {
77   - if (address.match(/bzr/)) {
78   - return true;
79   - }
80   - alert("Address does not match type BAZAAR chosen.");
81   - return false;
82   -}
83   -
84   -function matchCVS(address) {
85   - if (address.match(/cvs/)) {
86   - return true;
87   - }
88   - alert("Address does not match type CVS chosen.");
89   - return false;
90   -}
91   -
92   -function matchGIT(address) {
93   - if (address.match(/^(http(s)?:\/\/git(hub)?\.|git:\/\/git(hub\.com|orious\.org)\/|git@git(hub\.com|orious\.org):).+.git$/)) {
94   - return true;
95   - }
96   - alert("Address does not match type GIT chosen.");
97   - return false;
98   -}
99   -
100   -function matchMercurial(address) {
101   - if (address.match(/^(http(s)?|ssh):\/\/.*hg/)) {
102   - return true;
103   - }
104   - alert("Address does not match type MERCURIAL chosen.");
105   - return false;
106   -}
107   -
108   -function matchRemoteTarball(address) {
109   - if (address.match(/\.tar(\..+)*$/)) {
110   - return true;
111   - }
112   - alert("Address does not match type REMOTE_TARBALL chosen.");
113   - return false;
114   -}
115   -
116   -function matchRemoteZIP(address) {
117   - if (address.match(/\.zip$/)) {
118   - return true;
119   - }
120   - alert("Address does not match type REMOTE_ZIP chosen.");
121   - return false;
122   -}
123   -
124   -function matchSubversion(address) {
125   - if (address.match(/^http(s)?:\/\/.+\/svn.+$/)) {
126   - return true;
127   - }
128   - alert("Address does not match type SUBVERSION chosen.");
129   - return false;
130   -}
131   -
132   -function validate_metric_configuration() {
133   - var code = jQuery('#metric_configuration_code').val();
134   - if (is_null(code)) {
135   - alert("Code must be filled out");
136   - return false;
137   - }
138   - return true;
139   -}
140   -
141   -function is_null(value) {
142   - if (value == "" || value == null) {
143   - return true;
144   - }
145   - return false;
146   -}
147   -
148   -function IsNotNumeric(value) {
149   - if (value.match(/[0-9]*\.?[0-9]+/)) {
150   - return false;
151   - }
152   - return true;
153   -}
154   -
155   -function IsNotInfinite(value) {
156   - if (value.match(/INF/)) {
157   - return false;
158   - }
159   - return true;
160   -}
161   -
162   -function validate_new_range_configuration(event) {
163   - var beginning = jQuery("#range_beginning").val();
164   - var end = jQuery("#range_end").val();
165   -
166   - if (is_null(beginning) || is_null(end)) {
167   - alert("Please fill all fields marked with (*).");
168   - return false;
169   - }
170   - if ( (IsNotNumeric(beginning) && IsNotInfinite(beginning)) || (IsNotNumeric(end) && IsNotInfinite(end))) {
171   - alert("Beginning, End and Grade must be numeric values.");
172   - return false;
173   - }
174   - if (parseInt(beginning) > parseInt(end)) {
175   - if (IsNotInfinite(beginning) && IsNotInfinite(end)) {
176   - alert("End must be greater than Beginning.");
177   - return false;
178   - }
179   - }
180   - return true;
181   -}
plugins/mezuro/public/style.css
... ... @@ -1,37 +0,0 @@
1   -@import url('colorPicker.css');
2   -
3   -.link {
4   - cursor: pointer;
5   -}
6   -
7   -.source-tree{
8   - background: #e7e7e7;
9   - border: groove 1px #666;
10   -}
11   -
12   -.icon {
13   - width: 20px;
14   -}
15   -
16   -.source-tree-text{
17   - font-family: Arial, Impact;
18   - font-size: 12px;
19   - border-left: solid 1px #666;
20   -}
21   -
22   -a:link,active,visited .ancestor{
23   - font-family: Arial, Impact;
24   - color: #5E5400;
25   -}
26   -
27   -.path{
28   - font-family: Arial, Impact;
29   - font-size: 14px;
30   - font-style: underline;
31   - display: inline;
32   -}
33   -
34   -.controller-profile_editor a.control-panel-mezuro,
35   - .controller-profile_editor .msie6 a.control-panel-mezuro {
36   - background-image: url(/plugins/mezuro/icons/mezuro.png)
37   -}
plugins/mezuro/script/install/install-rvm.sh
... ... @@ -1,118 +0,0 @@
1   -#!/bin/bash --login
2   -
3   -#Ubuntu Package Dependencies
4   -sudo apt-get update
5   -sudo apt-get install build-essential curl libxslt1-dev git git-core tango-icon-theme sqlite3 libsqlite3-dev patch bzip2 openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev openjdk-6-jre
6   -
7   -#RVM Installation for Ubuntu 12.10
8   -curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --version 1.19.0
9   -
10   -# Load RVM into a shell session *as a function*
11   -if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
12   - # First try to load from a user install
13   - source "$HOME/.rvm/scripts/rvm"
14   -elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
15   - # Then try to load from a root install
16   - source "/usr/local/rvm/scripts/rvm"
17   -else
18   - printf "ERROR: An RVM installation was not found.\n"
19   -fi
20   -rvm reload
21   -
22   -#Complements the RVM installation
23   -rvm requirements run
24   -#rvm pkg install zlib --verify-downloads 1
25   -
26   -#Ruby installation and setup
27   -CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls" rvm install 1.8.7-p302
28   -rvm use ruby-1.8.7-p302@global
29   -gem install rubygems-update -v 1.3.7
30   -update_rubygems
31   -gem install rake -v 0.8.7
32   -yes | gem uninstall rake -v 10.0.4
33   -rvm gemset create mezuro
34   -rvm use ruby-1.8.7-p302@mezuro
35   -
36   -#Gems installation
37   -#The order really matters here, so if you see an output like "2 gems instaled" something should be wrong
38   -gem install --no-ri --no-rdoc rack -v 1.0.1
39   -gem install --no-ri --no-rdoc rack-test -v 0.6.2
40   -gem install --no-ri --no-rdoc httpi -v 1.0
41   -gem install --no-ri --no-rdoc nokogiri -v 1.5.5
42   -gem install --no-ri --no-rdoc wasabi -v 2.0.0
43   -gem install --no-ri --no-rdoc json -v 1.7.5
44   -gem install --no-ri --no-rdoc gherkin -v 2.5.4
45   -gem install --no-ri --no-rdoc multi_json -v 1.3.7
46   -gem install --no-ri --no-rdoc rubyzip -v 0.9.9
47   -gem install --no-ri --no-rdoc ffi -v 1.2.0
48   -gem install --no-ri --no-rdoc childprocess -v 0.3.6
49   -gem install --no-ri --no-rdoc websocket -v 1.0.4
50   -gem install --no-ri --no-rdoc libwebsocket -v 0.1.6.1
51   -gem install --no-ri --no-rdoc selenium-webdriver -v 2.30.0
52   -gem install --no-ri --no-rdoc activesupport -v 2.3.5
53   -gem install --no-ri --no-rdoc actionpack -v 2.3.5
54   -gem install --no-ri --no-rdoc actionmailer -v 2.3.5
55   -gem install --no-ri --no-rdoc activerecord -v 2.3.5
56   -gem install --no-ri --no-rdoc activeresource -v 2.3.5
57   -gem install --no-ri --no-rdoc addressable -v 2.2.2
58   -gem install --no-ri --no-rdoc builder -v 3.1.4
59   -gem install --no-ri --no-rdoc gyoku -v 0.4.6
60   -gem install --no-ri --no-rdoc akami -v 1.2.0
61   -gem install --no-ri --no-rdoc xpath -v 0.1.4
62   -gem install --no-ri --no-rdoc mime-types -v 1.19
63   -gem install --no-ri --no-rdoc capybara -v 1.1.1
64   -gem install --no-ri --no-rdoc term-ansicolor -v 1.0.7
65   -gem install --no-ri --no-rdoc diff-lcs -v 1.1.3
66   -gem install --no-ri --no-rdoc cucumber -v 1.1.0
67   -gem install --no-ri --no-rdoc cucumber-rails -v 0.3.2
68   -gem install --no-ri --no-rdoc culerity -v 0.2.15
69   -gem install --no-ri --no-rdoc database_cleaner -v 0.9.1
70   -gem install --no-ri --no-rdoc exception_notification -v 1.0.20090728
71   -gem install --no-ri --no-rdoc googlecharts -v 1.6.8
72   -gem install --no-ri --no-rdoc hpricot -v 0.8.2
73   -gem install --no-ri --no-rdoc httpi -v 0.9.7
74   -gem install --no-ri --no-rdoc i18n -v 0.4.1
75   -gem install --no-ri --no-rdoc metaclass -v 0.0.1
76   -gem install --no-ri --no-rdoc mocha -v 0.9.8
77   -gem install --no-ri --no-rdoc nori -v 1.1.3
78   -gem install --no-ri --no-rdoc ntlm-http -v 0.1.1
79   -gem install --no-ri --no-rdoc polyglot -v 0.3.3
80   -gem install --no-ri --no-rdoc rails -v 2.3.5
81   -gem install --no-ri --no-rdoc rcov -v 0.9.7.1
82   -gem install --no-ri --no-rdoc RedCloth -v 4.2.2
83   -gem install --no-ri --no-rdoc rspec -v 1.2.9
84   -gem install --no-ri --no-rdoc rspec-rails -v 1.2.9
85   -gem install --no-ri --no-rdoc savon -v 0.9.7
86   -gem install --no-ri --no-rdoc Selenium -v 1.1.14
87   -gem install --no-ri --no-rdoc selenium-client -v 1.2.18
88   -gem install --no-ri --no-rdoc sqlite3 -v 1.3.6
89   -gem install --no-ri --no-rdoc system_timer -v 1.2.4
90   -gem install --no-ri --no-rdoc tango -v 0.1.15
91   -gem install --no-ri --no-rdoc tidy -v 1.1.2
92   -gem install --no-ri --no-rdoc treetop -v 1.4.10
93   -gem install --no-ri --no-rdoc webrat -v 0.5.1
94   -gem install --no-ri --no-rdoc will_paginate -v 2.3.12
95   -gem install --no-ri --no-rdoc gettext -v 1.8.0
96   -
97   -#Mezuro installation
98   -git clone git@gitorious.org:+mezuro/noosfero/mezuro.git
99   -cd mezuro
100   -git checkout mezuro-dev
101   -rvm use ruby-1.8.7-p302@mezuro
102   -cp config/database.yml.sqlite3 config/database.yml
103   -cp plugins/mezuro/service.yml.example plugins/mezuro/service.yml
104   -cp plugins/mezuro/licenses.yml.example plugins/mezuro/licenses.yml
105   -mkdir tmp
106   -rake db:schema:load
107   -rake db:migrate
108   -rake makemo
109   -./script/sample-data
110   -./script/noosfero-plugins enable mezuro
111   -cd public/designs/themes
112   -rm -f default
113   -git clone https://git.gitorious.org/mezuro/mezuro-theme.git
114   -ln -s mezuro-theme/ default
115   -cd ../../../
116   -
117   -#Prepare Mezuro for running functional and unit tests
118   -rake db:test:prepare
plugins/mezuro/script/tests/delete_all_kalibro_entries.sh
... ... @@ -1,5 +0,0 @@
1   -#!/bin/bash
2   -
3   -source plugins/mezuro/script/tests/kalibro_scripts.conf
4   -
5   -sudo su postgres -c "export PGPASSWORD=$PASSWORD && psql -q -d $DATABASE -f $QUERYFILE"
plugins/mezuro/script/tests/kalibro_scripts.conf
... ... @@ -1,6 +0,0 @@
1   -# Definition of constants used in kalibro scripts.
2   -
3   -PSQLFILE=/tmp/PostgreSQL.sql
4   -DATABASE="kalibro_test"
5   -PASSWORD="kalibro"
6   -QUERYFILE=/tmp/query
7 0 \ No newline at end of file
plugins/mezuro/script/tests/prepare_kalibro_query_file.sh
... ... @@ -1,20 +0,0 @@
1   -#!/bin/bash
2   -
3   -source plugins/mezuro/script/tests/kalibro_scripts.conf
4   -if ! [ -f $PSQLFILE ]
5   - then wget http://gitorious.org/kalibro/kalibro/blobs/raw/master/KalibroCore/src/META-INF/PostgreSQL.sql -O $PSQLFILE
6   -fi
7   -
8   -DROPLIMIT="END OF DROP TABLES"
9   -RANGE=$(grep -n "$DROPLIMIT" $PSQLFILE | cut -d":" -f1)
10   -START=1
11   -END=$(($RANGE - 1))
12   -CUT=$START,$END\!d
13   -REPLACE="s/DROP TABLE IF EXISTS sequences,/TRUNCATE/"
14   -
15   -if [ -f $QUERYFILE ]
16   - then sudo rm $QUERYFILE
17   -fi
18   -
19   -sed -e "$CUT" -e "$REPLACE" $PSQLFILE > $QUERYFILE
20   -sudo chown postgres.postgres $QUERYFILE
21 0 \ No newline at end of file
plugins/mezuro/script/tests/run_acceptance_tests.sh
... ... @@ -1,42 +0,0 @@
1   -#!/bin/bash
2   -
3   -TEST_FILE=$1
4   -PROFILE=$2
5   -
6   -if [ -z "$PROFILE" ]; then
7   - PROFILE='default'
8   -fi
9   -
10   -# where are your .kalibro dir?
11   -KALIBRO_HOME='/usr/share/tomcat6/.kalibro'
12   -
13   -# create a kalibro test dir
14   -echo "--> Creating tests directory"
15   -sudo mkdir $KALIBRO_HOME/tests
16   -echo "--> Copying test settings"
17   -sudo cp $KALIBRO_HOME/kalibro_test.settings $KALIBRO_HOME/tests/kalibro.settings
18   -echo "--> Changing owner of tests directory to tomcat6"
19   -sudo chown -R tomcat6:tomcat6 $KALIBRO_HOME/tests
20   -
21   -# you must restart tomcat6
22   -#if you are using a tomcat installed from apt-get, for example:
23   -sudo service tomcat6 restart
24   -
25   -#if you are using a tomcat installed a specific dir, for exemple:
26   -#~/tomcat6/bin/shoutdown.sh
27   -#~/tomcat6/bin/startup.sh
28   -
29   -# run test
30   -cucumber $TEST_FILE -p $PROFILE
31   -
32   -#back to normal mode
33   -echo "--> Removing tests directory"
34   -sudo rm -rf $KALIBRO_HOME/tests
35   -
36   -# you must restart tomcat6 again
37   -sudo service tomcat6 restart
38   -
39   -#or some thing like that...
40   -#~/tomcat6/bin/shoutdown.sh
41   -#~/tomcat6/bin/startup.sh
42   -
plugins/mezuro/service.yml.example
... ... @@ -1 +0,0 @@
1   -http://localhost:8080/KalibroService/
plugins/mezuro/test/features/echo_port_test.rb
... ... @@ -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.yaml")
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/fixtures/base_tool_fixtures.rb
... ... @@ -1,19 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_fixtures'
2   -
3   -class BaseToolFixtures
4   -
5   - def self.base_tool
6   - Kalibro::BaseTool.new base_tool_hash
7   - end
8   -
9   - def self.base_tool_hash
10   - {
11   - :name => 'Analizo',
12   - :supported_metric => [
13   - MetricFixtures.total_cof_hash,
14   - MetricFixtures.amloc_hash],
15   - :collector_class_name => "org.analizo.AnalizoMetricCollector"
16   - }
17   - end
18   -
19   -end
plugins/mezuro/test/fixtures/configuration_content_fixtures.rb
... ... @@ -1,23 +0,0 @@
1   -class ConfigurationContentFixtures
2   -
3   - def self.configuration_content
4   - MezuroPlugin::ConfigurationContent.new configuration_content_hash
5   - end
6   -
7   - def self.created_configuration_content
8   - MezuroPlugin::ConfigurationContent.new( {
9   - :name => 'Sample Configuration',
10   - :description => 'Kalibro configuration for Java projects.',
11   - :configuration_id => nil
12   - } )
13   - end
14   -
15   - def self.configuration_content_hash
16   - {
17   - :name => 'Sample Configuration',
18   - :description => 'Kalibro configuration for Java projects.',
19   - :configuration_id => "42"
20   - }
21   - end
22   -
23   -end
plugins/mezuro/test/fixtures/configuration_fixtures.rb
... ... @@ -1,28 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_configuration_fixtures'
2   -
3   -class ConfigurationFixtures
4   -
5   - def self.configuration
6   - Kalibro::Configuration.new configuration_hash
7   - end
8   -
9   - def self.created_configuration
10   - Kalibro::Configuration.new({
11   - :name => 'Created Sample Configuration',
12   - :description => 'Kalibro configuration for Java projects.'
13   - })
14   - end
15   -
16   - def self.configuration_hash
17   - {
18   - :id => "42",
19   - :name => 'Sample Configuration',
20   - :description => 'Kalibro configuration for Java projects.'
21   - }
22   - end
23   -
24   - def self.all
25   - [configuration]
26   - end
27   -
28   -end
plugins/mezuro/test/fixtures/date_metric_result_fixtures.rb
... ... @@ -1,33 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_result_fixtures'
2   -
3   -class DateMetricResultFixtures
4   -
5   - def self.date_metric_result
6   - Kalibro::DateMetricResult.new date_metric_result_hash
7   - end
8   -
9   - def self.date_metric_result_hash
10   - {
11   - :date => '2011-10-20T18:26:43.151+00:00',
12   - :metric_result => MetricResultFixtures.native_metric_result_hash,
13   - :attributes! =>
14   - {
15   - :metric_result =>
16   - {
17   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
18   - "xsi:type"=>"kalibro:metricResultXml"
19   - }
20   - }
21   - }
22   - end
23   -
24   - def self.score_history
25   - result = []
26   - result << date_metric_result
27   - newer_date_metric_result = date_metric_result
28   - newer_date_metric_result.date = '2011-10-25T18:26:43.151+00:00'
29   - newer_date_metric_result.metric_result.value = 5.0
30   - result << newer_date_metric_result
31   - end
32   -
33   -end
plugins/mezuro/test/fixtures/date_module_result_fixtures.rb
... ... @@ -1,24 +0,0 @@
1   -require File.dirname(__FILE__) + '/module_result_fixtures'
2   -
3   -class DateModuleResultFixtures
4   -
5   - def self.date_module_result
6   - Kalibro::DateModuleResult.new date_module_result_hash
7   - end
8   -
9   - def self.date_module_result_hash
10   - {
11   - :date => '2011-10-20T18:26:43.151+00:00',
12   - :module_result => ModuleResultFixtures.module_result_hash,
13   - :attributes! =>
14   - {
15   - :module_result =>
16   - {
17   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
18   - "xsi:type"=>"kalibro:moduleResultXml"
19   - }
20   - }
21   - }
22   - end
23   -
24   -end
plugins/mezuro/test/fixtures/metric_configuration_fixtures.rb
... ... @@ -1,58 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_fixtures'
2   -
3   -class MetricConfigurationFixtures
4   -
5   - def self.amloc_metric_configuration
6   - amloc = Kalibro::MetricConfiguration.new amloc_metric_configuration_hash
7   - amloc.configuration_id = "13"
8   - amloc
9   - end
10   -
11   - def self.sc_metric_configuration
12   - sc = Kalibro::MetricConfiguration.new sc_metric_configuration_hash
13   - sc.configuration_id = "13"
14   - sc
15   - end
16   -
17   - def self.created_metric_configuration
18   - Kalibro::MetricConfiguration.new({
19   - :code => 'amloc',
20   - :metric => MetricFixtures.amloc_hash,
21   - :base_tool_name => "Analizo",
22   - :weight => "1.0",
23   - :aggregation_form => 'AVERAGE',
24   - :reading_group_id => "31",
25   - :configuration_id => "13"
26   - })
27   - end
28   -
29   - def self.amloc_metric_configuration_hash
30   - {
31   - :id => "42",
32   - :code => 'amloc',
33   - :metric => MetricFixtures.amloc_hash,
34   - :base_tool_name => "Analizo",
35   - :weight => "1.0",
36   - :aggregation_form => 'AVERAGE',
37   - :reading_group_id => "31",
38   - :attributes! => {:metric => {
39   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
40   - 'xsi:type' => 'kalibro:metricXml' }}
41   - }
42   - end
43   -
44   - def self.sc_metric_configuration_hash
45   - {
46   - :id => "42",
47   - :code => 'sc',
48   - :metric => MetricFixtures.compound_metric_hash,
49   - :weight => "1.0",
50   - :aggregation_form => 'AVERAGE',
51   - :reading_group_id => "31",
52   - :attributes! => {:metric => {
53   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
54   - 'xsi:type' => 'kalibro:metricXml' }}
55   - }
56   - end
57   -
58   -end
plugins/mezuro/test/fixtures/metric_configuration_snapshot_fixtures.rb
... ... @@ -1,62 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_fixtures'
2   -require File.dirname(__FILE__) + '/range_snapshot_fixtures'
3   -
4   -class MetricConfigurationSnapshotFixtures
5   -
6   - def self.metric_configuration_snapshot
7   - Kalibro::MetricConfigurationSnapshot.new metric_configuration_snapshot_hash
8   - end
9   -
10   - def self.metric_configuration_snapshot_hash
11   - {
12   - :code => "code",
13   - :weight => "1.0",
14   - :aggregation_form => 'AVERAGE',
15   - :metric => MetricFixtures.amloc_hash,
16   - :base_tool_name => "Analizo",
17   - :range => [RangeSnapshotFixtures.range_snapshot_hash],
18   - :attributes! => {
19   - :metric => {
20   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
21   - 'xsi:type' => 'kalibro:metricXml' },
22   - :range => {
23   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
24   - 'xsi:type' => 'kalibro:rangeSnapshotXml' }
25   - }
26   - }
27   - end
28   -
29   - def self.metric_configuration_snapshot_with_2_elements
30   - Kalibro::MetricConfigurationSnapshot.new metric_configuration_snapshot_hash_with_2_elements
31   - end
32   -
33   - def self.metric_configuration_snapshot_hash_with_2_elements
34   - hash = self.metric_configuration_snapshot_hash
35   - hash[:range] << RangeSnapshotFixtures.range_snapshot_hash
36   - hash
37   - end
38   -
39   - def self.compound_metric_configuration_snapshot
40   - Kalibro::MetricConfigurationSnapshot.new compound_metric_configuration_snapshot_hash
41   - end
42   -
43   - def self.compound_metric_configuration_snapshot_hash
44   - {
45   - :code => "code",
46   - :weight => "1.0",
47   - :aggregation_form => 'AVERAGE',
48   - :metric => MetricFixtures.compound_metric,
49   - :base_tool_name => "Analizo",
50   - :range => [RangeSnapshotFixtures.range_snapshot_hash],
51   - :attributes! => {
52   - :metric => {
53   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
54   - 'xsi:type' => 'kalibro:metricXml' },
55   - :range => {
56   - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
57   - 'xsi:type' => 'kalibro:rangeSnapshotXml' }
58   - }
59   - }
60   - end
61   -
62   -end
plugins/mezuro/test/fixtures/metric_fixtures.rb
... ... @@ -1,27 +0,0 @@
1   -class MetricFixtures
2   -
3   - def self.compound_metric
4   - Kalibro::Metric.new compound_metric_hash
5   - end
6   -
7   - def self.compound_metric_hash
8   - {:name => 'Structural Complexity', :compound => "true", :scope => 'CLASS', :script => 'return 42;', :description => 'Calculate the Structural Complexity of the Code'}
9   - end
10   -
11   - def self.total_cof
12   - Kalibro::Metric.new total_cof_hash
13   - end
14   -
15   - def self.total_cof_hash
16   - {:name => 'Total Coupling Factor', :compound => "false", :scope => 'SOFTWARE', :language => ['JAVA']}
17   - end
18   -
19   - def self.amloc
20   - Kalibro::Metric.new amloc_hash
21   - end
22   -
23   - def self.amloc_hash
24   - {:name => 'Average Method LOC', :compound => "false", :scope => 'CLASS', :language => ['JAVA']}
25   - end
26   -
27   -end
plugins/mezuro/test/fixtures/metric_result_fixtures.rb
... ... @@ -1,54 +0,0 @@
1   -require File.dirname(__FILE__) + '/metric_configuration_snapshot_fixtures'
2   -require File.dirname(__FILE__) + '/throwable_fixtures'
3   -
4   -class MetricResultFixtures
5   -
6   - def self.native_metric_result
7   - Kalibro::MetricResult.new native_metric_result_hash
8   - end
9   -
10   - def self.compound_metric_result
11   - Kalibro::MetricResult.new compound_metric_result_hash
12   - end
13   -
14   - def self.metric_result_with_error_hash
15   - {
16   - :id => "41",
17   - :configuration => MetricConfigurationSnapshotFixtures.metric_configuration_snapshot_hash,
18   - :error => ThrowableFixtures.throwable_hash
19   - }
20   - end
21   -
22   - def self.native_metric_result_hash
23   - {
24   - :id => "42",
25   - :configuration => MetricConfigurationSnapshotFixtures.metric_configuration_snapshot_hash,
26   - :value => "0.0",
27   - :attributes! =>
28   - {
29   - :configuration =>
30   - {
31   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
32   - "xsi:type"=>"kalibro:metricConfigurationSnapshotXml"
33   - }
34   - }
35   - }
36   - end
37   -
38   - def self.compound_metric_result_hash
39   - {
40   - :id => "43",
41   - :configuration => MetricConfigurationSnapshotFixtures.compound_metric_configuration_snapshot_hash,
42   - :value => "1.0",
43   - :attributes! =>
44   - {
45   - :configuration =>
46   - {
47   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
48   - "xsi:type"=>"kalibro:metricConfigurationSnapshotXml"
49   - }
50   - }
51   - }
52   - end
53   -
54   -end
plugins/mezuro/test/fixtures/module_fixtures.rb
... ... @@ -1,14 +0,0 @@
1   -class ModuleFixtures
2   -
3   - def self.module
4   - Kalibro::Module.new module_hash
5   - end
6   -
7   - def self.module_hash
8   - {
9   - :name => 'Qt-Calculator',
10   - :granularity => 'APPLICATION'
11   - }
12   - end
13   -
14   -end
plugins/mezuro/test/fixtures/module_result_fixtures.rb
... ... @@ -1,44 +0,0 @@
1   -require File.dirname(__FILE__) + '/module_fixtures'
2   -
3   -class ModuleResultFixtures
4   -
5   - def self.module_result
6   - Kalibro::ModuleResult.new module_result_hash
7   - end
8   -
9   - def self.module_result_hash
10   - {
11   - :id => "42",
12   - :module => ModuleFixtures.module_hash,
13   - :grade => "10.0",
14   - :parent_id => "31",
15   - :attributes! =>
16   - {
17   - :module =>
18   - {
19   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
20   - "xsi:type"=>"kalibro:moduleXml"
21   - }
22   - }
23   - }
24   - end
25   -
26   - def self.parent_module_result_hash
27   - {
28   - :id => "31",
29   - :module => {
30   - :name => 'Qt-Calculator Parent',
31   - :granularity => 'APPLICATION'
32   - },
33   - :grade => "10.0",
34   - :attributes! =>
35   - {
36   - :module =>
37   - {
38   - "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
39   - "xsi:type"=>"kalibro:moduleXml"
40   - }
41   - }
42   - }
43   - end
44   -end
plugins/mezuro/test/fixtures/process_time_fixtures.rb
... ... @@ -1,11 +0,0 @@
1   -class ProcessTimeFixtures
2   -
3   - def self.process_time
4   - Kalibro::ProcessTime.new process_time_hash
5   - end
6   -
7   - def self.process_time_hash
8   - {:state => "Ready", :time => "1"}
9   - end
10   -
11   -end
plugins/mezuro/test/fixtures/processing_fixtures.rb
... ... @@ -1,30 +0,0 @@
1   -require File.dirname(__FILE__) + '/process_time_fixtures'
2   -require File.dirname(__FILE__) + '/throwable_fixtures'
3   -
4   -class ProcessingFixtures
5   -
6   - def self.processing
7   - Kalibro::Processing.new processing_hash
8   - end
9   -
10   - def self.processing_hash
11   - {
12   - :id => "31",
13   - :date => '2011-10-20T18:26:43.151+00:00',
14   - :state => 'READY',
15   - :process_time => [ProcessTimeFixtures.process_time_hash],
16   - :results_root_id => "13"
17   - }
18   - end
19   -
20   - def self.processing_with_error_hash
21   - {
22   - :id => "31",
23   - :date => '2011-10-20T18:26:43.151+00:00',
24   - :state => 'ERROR',
25   - :process_time => [ProcessTimeFixtures.process_time_hash],
26   - :error => ThrowableFixtures.throwable_hash
27   - }
28   - end
29   -
30   -end
plugins/mezuro/test/fixtures/project_content_fixtures.rb
... ... @@ -1,9 +0,0 @@
1   -class ProjectContentFixtures
2   -
3   - def self.project_content
4   - content = MezuroPlugin::ProjectContent.new
5   - content.project_id = 42
6   - content
7   - end
8   -
9   -end
plugins/mezuro/test/fixtures/project_fixtures.rb
... ... @@ -1,20 +0,0 @@
1   -require File.dirname(__FILE__) + '/repository_fixtures'
2   -
3   -class ProjectFixtures
4   -
5   - def self.project
6   - Kalibro::Project.new project_hash
7   - end
8   -
9   - def self.created_project
10   - Kalibro::Project.new :name => 'Qt-Calculator', :description => 'Calculator for Qt'
11   - end
12   -
13   - def self.project_hash
14   - {
15   - :id => "42",
16   - :name => 'Qt-Calculator',
17   - :description => 'Calculator for Qt'
18   - }
19   - end
20   -end
plugins/mezuro/test/fixtures/range_fixtures.rb
... ... @@ -1,19 +0,0 @@
1   -class RangeFixtures
2   -
3   - def self.range
4   - Kalibro::Range.new range_hash
5   - end
6   -
7   - def self.created_range
8   - Kalibro::Range.new created_range_hash
9   - end
10   -
11   - def self.created_range_hash
12   - {:beginning => "19.5", :end => "INF", :reading_id => "1", :comments => "Test range 1"}
13   - end
14   -
15   - def self.range_hash
16   - {:id => "1", :beginning => "19.5", :end => "INF", :reading_id => "1", :comments => "Test range 1"}
17   - end
18   -
19   -end
plugins/mezuro/test/fixtures/range_snapshot_fixtures.rb
... ... @@ -1,19 +0,0 @@
1   -class RangeSnapshotFixtures
2   -
3   - def self.range_snapshot
4   - Kalibro::RangeSnapshot.new range_snapshot_hash
5   - end
6   -
7   - def self.range_snapshot_with_infinite_range
8   - Kalibro::RangeSnapshot.new range_snapshot_with_infinite_range_hash
9   - end
10   -
11   - def self.range_snapshot_hash
12   - { :beginning => "1.1", :end => "5.1", :label => "snapshot", :grade => "10.1", :color => "FF2284", :comments => "comment" }
13   - end
14   -
15   - def self.range_snapshot_with_infinite_range_hash
16   - { :beginning => "-INF", :end => "INF", :label => "snapshot", :grade => "10.1", :color => "FF2284", :comments => "comment" }
17   - end
18   -
19   -end
plugins/mezuro/test/fixtures/reading_fixtures.rb
... ... @@ -1,16 +0,0 @@
1   -class ReadingFixtures
2   -
3   - def self.reading
4   - Kalibro::Reading.new reading_hash
5   - end
6   -
7   - def self.created_reading # A created object has no id before being sent to kalibro
8   - Kalibro::Reading.new :label => "Reading Test Label", :grade => "10.5", :color => "AABBCC", :group_id => "31"
9   - end
10   -
11   - def self.reading_hash
12   - {:id => "42", :label => "Reading Test Label", :grade => "10.5", :color => "AABBCC", :group_id => "31"}
13   - end
14   -
15   -end
16   -
plugins/mezuro/test/fixtures/reading_group_content_fixtures.rb
... ... @@ -1,9 +0,0 @@
1   -class ReadingGroupContentFixtures
2   -
3   - def self.reading_group_content
4   - content = MezuroPlugin::ReadingGroupContent.new
5   - content.reading_group_id = 42
6   - content
7   - end
8   -
9   -end
plugins/mezuro/test/fixtures/reading_group_fixtures.rb
... ... @@ -1,15 +0,0 @@
1   -class ReadingGroupFixtures
2   -
3   - def self.reading_group
4   - Kalibro::ReadingGroup.new reading_group_hash
5   - end
6   -
7   - def self.created_reading_group # A created object has no id before being sent to kalibro
8   - Kalibro::ReadingGroup.new :name => "Reading Group Test", :description => "Reading group in the fixtures"
9   - end
10   -
11   - def self.reading_group_hash
12   - {:id => "42", :name => "Reading Group Test", :description => "Reading group in the fixtures"}
13   - end
14   -
15   -end
plugins/mezuro/test/fixtures/repository_fixtures.rb
... ... @@ -1,28 +0,0 @@
1   -class RepositoryFixtures
2   -
3   - def self.repository
4   - Kalibro::Repository.new repository_hash
5   - end
6   -
7   - def self.created_repository
8   - Kalibro::Repository.new({
9   - :name => "test created repository",
10   - :description => "test description",
11   - :license => "GPL",
12   - :process_period => "1",
13   - :type => 'SUBVERSION',
14   - :address => 'https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator',
15   - :configuration_id => "31",
16   - :project_id => "32"
17   - })
18   - end
19   -
20   - def self.repository_hash
21   - {:id => "42", :name => "test repository", :description => "test description", :license => "GPL", :process_period => "1", :type => 'SUBVERSION', :address => "https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator", :configuration_id => "31", :project_id => "32"}
22   - end
23   -
24   - def self.types
25   - ["SUBVERSION", "GIT"]
26   - end
27   -
28   -end
plugins/mezuro/test/fixtures/stack_trace_element_fixtures.rb
... ... @@ -1,16 +0,0 @@
1   -class StackTraceElementFixtures
2   -
3   - def self.stack_trace_element
4   - Kalibro::StackTraceElement.new stack_trace_element_hash
5   - end
6   -
7   - def self.stack_trace_element_hash
8   - {
9   - :declaring_class => 'my.declaring.Class',
10   - :method_name => 'my method name',
11   - :file_name => 'MyFile.java',
12   - :line_number => '42'
13   - }
14   - end
15   -
16   -end
plugins/mezuro/test/fixtures/throwable_fixtures.rb
... ... @@ -1,19 +0,0 @@
1   -require File.dirname(__FILE__) + '/stack_trace_element_fixtures'
2   -
3   -class ThrowableFixtures
4   -
5   - def self.throwable
6   - Kalibro::Throwable.new throwable_hash
7   - end
8   -
9   - def self.throwable_hash
10   - {
11   - :target_string => 'Target String',
12   - :message => 'Throwable message from ThrowableTest',
13   - :stack_trace_element => [
14   - StackTraceElementFixtures.stack_trace_element_hash, StackTraceElementFixtures.stack_trace_element_hash
15   - ]
16   - }
17   - end
18   -
19   -end
plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb
... ... @@ -1,228 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{Rails.root}/plugins/mezuro/test/fixtures/error_fixtures"
4   -require "#{Rails.root}/plugins/mezuro/test/fixtures/base_tool_fixtures"
5   -require "#{Rails.root}/plugins/mezuro/test/fixtures/native_metric_fixtures"
6   -require "#{Rails.root}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
7   -require "#{Rails.root}/plugins/mezuro/test/fixtures/configuration_fixtures"
8   -require "#{Rails.root}/plugins/mezuro/test/fixtures/range_fixtures"
9   -
10   -class MezuroPluginMyprofileControllerTest < ActionController::TestCase
11   -
12   - def setup
13   - @controller = MezuroPluginMyprofileController.new
14   - @request = ActionController::TestRequest.new
15   - @response = ActionController::TestResponse.new
16   - @profile = fast_create(Community)
17   -
18   - @base_tool = BaseToolFixtures.base_tool
19   - @base_tool_hash = BaseToolFixtures.base_tool_hash
20   - @metric = NativeMetricFixtures.amloc
21   - @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
22   - @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
23   - @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration
24   - @compound_metric_configuration_hash = MetricConfigurationFixtures.sc_metric_configuration_hash
25   - @configuration = ConfigurationFixtures.configuration
26   - @configuration_hash = ConfigurationFixtures.configuration_hash
27   -
28   - Kalibro::Configuration.expects(:all_names).returns([])
29   - @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name)
30   - @content.expects(:send_kalibro_configuration_to_service).returns(nil)
31   - @content.stubs(:solr_save)
32   - @content.save
33   -
34   - @native_hash = @metric_configuration.to_hash.merge({:configuration_name => @metric_configuration.configuration_name})
35   - @native_hash.delete :attributes!
36   - @compound_hash = @compound_metric_configuration.to_hash.merge({:configuration_name => @compound_metric_configuration.configuration_name})
37   - @compound_hash.delete :attributes!
38   -
39   - @range = RangeFixtures.range_excellent
40   - @range_hash = RangeFixtures.range_excellent_hash
41   - end
42   -
43   - should 'test choose base tool' do
44   - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool_names).returns({:base_tool_name => @base_tool.name})
45   - get :choose_base_tool, :profile => @profile.identifier, :id => @content.id
46   - assert_equal [@base_tool.name], assigns(:base_tools)
47   - assert_equal @content, assigns(:configuration_content)
48   - assert_response 200
49   - end
50   -
51   - should 'test choose metric' do
52   - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash})
53   - get :choose_metric, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name
54   - assert_equal @content, assigns(:configuration_content)
55   - assert_equal @base_tool.name, assigns(:base_tool)
56   - assert_equal @base_tool.supported_metric[0].name, assigns(:supported_metrics)[0].name
57   - assert_response 200
58   - end
59   -
60   - should 'test new metric configuration' do
61   - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash})
62   - get :new_metric_configuration, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name, :metric_name => @metric.name
63   - assert_equal @content, assigns(:configuration_content)
64   - assert_equal @metric.name, assigns(:metric).name
65   - assert_response 200
66   - end
67   -
68   -
69   - should 'test new compound metric configuration' do
70   - Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @content.name}).returns({:configuration => @configuration_hash})
71   - get :new_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id
72   - assert_equal @content, assigns(:configuration_content)
73   - assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code
74   - assert_response 200
75   - end
76   -
77   - should 'test edit metric configuration' do
78   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
79   - :configuration_name => @content.name,
80   - :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})
81   - get :edit_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
82   - assert_equal @content, assigns(:configuration_content)
83   - assert_equal @metric_configuration.code, assigns(:metric_configuration).code
84   - assert_equal @metric_configuration.metric.name, assigns(:metric).name
85   - assert_response 200
86   - end
87   -
88   - should 'test edit compound metric configuration' do
89   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
90   - :configuration_name => @content.name,
91   - :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})
92   - Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @content.name}).returns({:configuration => @configuration_hash})
93   - get :edit_compound_metric_configuration,
94   - :profile => @profile.identifier,
95   - :id => @content.id,
96   - :metric_name => @compound_metric_configuration.metric.name
97   - assert_equal @content, assigns(:configuration_content)
98   - assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code
99   - assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name
100   - assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code
101   - assert_response 200
102   - end
103   -
104   - should 'test create native metric configuration' do
105   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
106   - :metric_configuration => @metric_configuration.to_hash,
107   - :configuration_name => @metric_configuration.configuration_name})
108   - get :create_metric_configuration,
109   - :profile => @profile.identifier,
110   - :id => @content.id,
111   - :metric_configuration => @native_hash
112   - assert_response 302
113   - end
114   -
115   - should 'test compound metric creation' do
116   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
117   - :metric_configuration => @compound_metric_configuration.to_hash,
118   - :configuration_name => @compound_metric_configuration.configuration_name})
119   - get :create_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,
120   - :metric_configuration => @compound_hash
121   - assert_response 302
122   - end
123   -
124   - should 'test update native metric configuration' do
125   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
126   - :configuration_name => @content.name,
127   - :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})
128   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
129   - :metric_configuration => @metric_configuration.to_hash,
130   - :configuration_name => @metric_configuration.configuration_name})
131   - get :update_metric_configuration, :profile => @profile.identifier, :id => @content.id,
132   - :metric_configuration => @native_hash
133   - assert_equal @content, assigns(:configuration_content)
134   - assert_response 302
135   - end
136   -
137   - should 'test update compound metric configuration' do
138   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
139   - :configuration_name => @content.name,
140   - :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})
141   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
142   - :metric_configuration => @compound_metric_configuration.to_hash,
143   - :configuration_name => @compound_metric_configuration.configuration_name})
144   - get :update_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,
145   - :metric_configuration => @compound_hash
146   - assert_equal @content, assigns(:configuration_content)
147   - assert_response 302
148   - end
149   -
150   - should 'test remove metric configuration' do
151   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
152   - :configuration_name => @content.name,
153   - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
154   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :remove_metric_configuration, {
155   - :metric_name => @metric.name,
156   - :configuration_name => @metric_configuration.configuration_name})
157   - get :remove_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
158   - assert_response 302
159   - end
160   -
161   - should 'test new range' do
162   - get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
163   - assert_equal @content, assigns(:configuration_content)
164   - assert_equal @metric.name, assigns(:metric_name)
165   - assert_response 200
166   - end
167   -
168   - should 'test edit range' do
169   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
170   - :configuration_name => @content.name,
171   - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
172   - get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning
173   - assert_equal @content, assigns(:configuration_content)
174   - assert_equal @metric.name, assigns(:metric_name)
175   - assert_equal @range.beginning, assigns(:beginning_id)
176   - assert_equal @range.end, assigns(:range).end
177   - assert_response 200
178   - end
179   -
180   - should 'test create instance range' do
181   - metric_configuration = @metric_configuration
182   - metric_configuration.add_range(@range)
183   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
184   - :configuration_name => @content.name,
185   - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
186   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
187   - :metric_configuration => metric_configuration.to_hash,
188   - :configuration_name => metric_configuration.configuration_name})
189   - get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name
190   - assert_equal @content, assigns(:configuration_content)
191   - assert_equal @range.end, assigns(:range).end
192   - assert_response 200
193   - end
194   -
195   - should 'test update range' do
196   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
197   - :configuration_name => @content.name,
198   - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
199   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
200   - :metric_configuration => @metric_configuration.to_hash,
201   - :configuration_name => @metric_configuration.configuration_name})
202   - get :update_range,
203   - :profile => @profile.identifier,
204   - :range => @range_hash,
205   - :id => @content.id,
206   - :metric_name => @metric.name,
207   - :beginning_id => @range.beginning
208   - assert_response 200
209   - end
210   -
211   - should 'test remove range' do
212   - metric_configuration = @metric_configuration
213   - metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f }
214   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
215   - :configuration_name => @content.name,
216   - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
217   - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
218   - :metric_configuration => metric_configuration.to_hash,
219   - :configuration_name => metric_configuration.configuration_name})
220   - get :remove_range,
221   - :profile => @profile.identifier,
222   - :id => @content.id,
223   - :metric_name => @metric.name,
224   - :beginning_id => @range.beginning
225   - assert_response 302
226   - end
227   -
228   -end
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
... ... @@ -1,141 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{Rails.root}/plugins/mezuro/test/fixtures/module_result_fixtures"
4   -require "#{Rails.root}/plugins/mezuro/test/fixtures/project_result_fixtures"
5   -require "#{Rails.root}/plugins/mezuro/test/fixtures/error_fixtures"
6   -require "#{Rails.root}/plugins/mezuro/test/fixtures/repository_fixtures"
7   -
8   -class MezuroPluginProfileControllerTest < ActionController::TestCase
9   -
10   - def setup
11   - @controller = MezuroPluginProfileController.new
12   - @request = ActionController::TestRequest.new
13   - @response = ActionController::TestResponse.new
14   - @profile = fast_create(Community)
15   -
16   - @project_result = ProjectResultFixtures.project_result
17   - @module_result = ModuleResultFixtures.module_result
18   - @repository_url = RepositoryFixtures.repository.address
19   - @project = @project_result.project
20   - @date = "2012-04-13T20:39:41+04:00"
21   -
22   - Kalibro::Project.expects(:all_names).returns([])
23   - @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @project.name, :repository_url => @repository_url)
24   - @content.expects(:send_project_to_service).returns(nil)
25   - @content.save
26   - end
27   -
28   - should 'test project state without kalibro_error' do
29   - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
30   - get :project_state, :profile => @profile.identifier, :id => @content.id
31   - assert_response 200
32   - assert_equal @content, assigns(:content)
33   - end
34   -
35   - should 'test project state with kalibro_error' do
36   - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
37   - get :project_state, :profile => @profile.identifier, :id => @content.id
38   - assert_response 200
39   - assert_equal "ERROR", @response.body
40   - assert_equal @content, assigns(:content)
41   - end
42   -
43   - should 'test project error' do
44   - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
45   - get :project_error, :profile => @profile.identifier, :id => @content.id
46   - assert_response 200
47   - assert_select('h3', 'ERROR')
48   - assert_equal @content, assigns(:content)
49   - assert_equal @project.name, assigns(:project).name
50   - end
51   -
52   - should 'test project result without date' do
53   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
54   - get :project_result, :profile => @profile.identifier, :id => @content.id, :date => nil
55   - assert_equal @content, assigns(:content)
56   - assert_equal @project_result.project.name, assigns(:project_result).project.name
57   - assert_response 200
58   - assert_select('h4', 'Last Result')
59   - end
60   -
61   - should 'test project results from a specific date' do
62   - request_body = {:project_name => @project.name, :date => @date}
63   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
64   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
65   - get :project_result, :profile => @profile.identifier, :id => @content.id, :date => @date
66   - assert_equal @content, assigns(:content)
67   - assert_equal @project_result.project.name, assigns(:project_result).project.name
68   - assert_response 200
69   - assert_select('h4', 'Last Result')
70   - end
71   -
72   -
73   - should 'get module result without date' do
74   - date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)
75   - Kalibro::ProjectResult.expects(:request).
76   - with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).
77   - returns({:project_result => @project_result.to_hash})
78   - Kalibro::ModuleResult.expects(:request).
79   - with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).
80   - returns({:module_result => @module_result.to_hash})
81   - get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil
82   - assert_equal @content, assigns(:content)
83   - assert_equal @module_result.grade, assigns(:module_result).grade
84   - assert_response 200
85   - assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
86   - end
87   -
88   - should 'get module result with a specific date' do
89   - date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)
90   - request_body = {:project_name => @project.name, :date => @project_result.date}
91   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
92   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
93   - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).returns({:module_result => @module_result.to_hash})
94   - get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date
95   - assert_equal @content, assigns(:content)
96   - assert_equal @module_result.grade, assigns(:module_result).grade
97   - assert_response 200
98   - assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
99   - end
100   -
101   - should 'test project tree without date' do
102   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
103   - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
104   - get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil
105   - assert_equal @content, assigns(:content)
106   - assert_equal @project.name, assigns(:project_name)
107   - assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
108   - assert_response 200
109   - assert_select('h2', /Qt-Calculator/)
110   - end
111   -
112   - should 'test project tree with a specific date' do
113   - request_body = {:project_name => @project.name, :date => @project_result.date}
114   - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
115   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
116   - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
117   - get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date
118   - assert_equal @content, assigns(:content)
119   - assert_equal @project.name, assigns(:project_name)
120   - assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
121   - assert_response 200
122   - end
123   -
124   - should 'test module metrics history' do
125   - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})
126   - get :module_metrics_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name,
127   - :metric_name => @module_result.metric_result.first.metric.name.delete("() ")
128   - assert_equal @content, assigns(:content)
129   - assert_equal [[@module_result.metric_result[0].value, @module_result.date.to_s[0..9]]], assigns(:score_history)
130   - assert_response 200
131   - end
132   -
133   - should 'test grade history' do
134   - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})
135   - get :module_grade_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name
136   - assert_equal @content, assigns(:content)
137   - assert_equal [[@module_result.grade, @module_result.date.to_s[0..9]]], assigns(:score_history)
138   - assert_response 200
139   - end
140   -
141   -end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb
... ... @@ -1,123 +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/metric_fixtures"
5   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
6   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
7   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_group_fixtures"
8   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"
9   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_fixtures"
10   -
11   -class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
12   -
13   - def setup
14   - @controller = MezuroPluginMetricConfigurationController.new
15   - @request = ActionController::TestRequest.new
16   - @response = ActionController::TestResponse.new
17   - @profile = fast_create(Profile)
18   -
19   - @configuration = ConfigurationFixtures.configuration
20   - @created_configuration = ConfigurationFixtures.created_configuration
21   - @configuration_hash = ConfigurationFixtures.configuration_hash
22   -
23   - @configuration_content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name, :configuration_id => 42)
24   - @configuration_content.expects(:send_configuration_to_service).returns(nil)
25   - @configuration_content.expects(:validate_configuration_name).returns(true)
26   - @configuration_content.save
27   -
28   - @base_tool = BaseToolFixtures.base_tool
29   - @base_tool_hash = BaseToolFixtures.base_tool_hash
30   -
31   - @metric = MetricFixtures.amloc
32   -
33   - @reading_group = ReadingGroupFixtures.reading_group
34   - @range = RangeFixtures.range
35   - @reading = ReadingFixtures.reading
36   -
37   - @native_metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
38   - @native_metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
39   - @created_metric_configuration = MetricConfigurationFixtures.created_metric_configuration
40   - @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration
41   - @compound_metric_configuration_hash = MetricConfigurationFixtures.sc_metric_configuration_hash
42   - end
43   -
44   - should 'choose metric' do
45   - Kalibro::BaseTool.expects(:all).returns([@base_tool])
46   - get :choose_metric, :profile => @profile.identifier, :id => @configuration_content.id
47   - assert_equal @configuration_content, assigns(:configuration_content)
48   - assert_equal [@base_tool], assigns(:base_tools)
49   - assert_response :success
50   - end
51   -
52   - should 'initialize native' do
53   - Kalibro::BaseTool.expects(:find_by_name).with(@base_tool.name).returns(@base_tool)
54   - Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
55   - get :new_native, :profile => @profile.identifier, :id => @configuration_content.id, :base_tool_name => @base_tool.name, :metric_name => @metric.name
56   - assert_equal @configuration_content, assigns(:configuration_content)
57   - assert_equal @metric.name, assigns(:metric).name
58   - assert_equal @base_tool.name, assigns(:metric_configuration).base_tool_name
59   - assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
60   - assert_response :success
61   - end
62   -
63   - should 'edit native' do
64   - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@native_metric_configuration])
65   - Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
66   - Kalibro::Range.expects(:ranges_of).with(@native_metric_configuration.id).returns([@range])
67   - Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading)
68   - get :edit_native, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @native_metric_configuration.id
69   - assert_equal @configuration_content, assigns(:configuration_content)
70   - assert_equal @native_metric_configuration.code, assigns(:metric_configuration).code
71   - assert_equal @native_metric_configuration.metric.name, assigns(:metric).name
72   - assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
73   - assert_equal [@range], assigns(:ranges)
74   - assert_response :success
75   - end
76   -
77   - should 'initialize compound' do
78   - Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
79   - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration_content.configuration_id).returns([@compound_metric_configuration])
80   - get :new_compound, :profile => @profile.identifier, :id => @configuration_content.id
81   - assert_equal @configuration_content, assigns(:configuration_content)
82   - assert_equal @compound_metric_configuration.code, assigns(:metric_configurations).first.code
83   - assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
84   - assert_response :success
85   - end
86   -
87   - should 'edit compound' do
88   - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@compound_metric_configuration])
89   - Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
90   - Kalibro::Range.expects(:ranges_of).with(@compound_metric_configuration.id).returns([@range])
91   - Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading)
92   - get :edit_compound, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @compound_metric_configuration.id
93   - assert_equal @configuration_content, assigns(:configuration_content)
94   - assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code
95   - assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name
96   - assert_equal [@compound_metric_configuration], assigns(:metric_configurations)
97   - assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
98   - assert_equal [@range], assigns(:ranges)
99   - assert_response :success
100   - end
101   -
102   - should 'create' do
103   - Kalibro::MetricConfiguration.expects(:create).returns(@compound_metric_configuration) #FIXME need .with(some_hash), should it mock the request?.
104   - get :create, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @compound_metric_configuration_hash
105   - assert_response :redirect
106   - end
107   -
108   - should 'update' do
109   - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration_content.configuration_id).returns([@native_metric_configuration])
110   - @native_metric_configuration.expects(:update_attributes).returns(true) #FIXME need .with(some_hash), should it mock the request?.
111   - get :update, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @native_metric_configuration_hash
112   - assert_equal @configuration_content, assigns(:configuration_content)
113   - assert_response :redirect
114   - end
115   -
116   - should 'remove' do
117   - Kalibro::MetricConfiguration.expects(:new).with({:id => @native_metric_configuration.id}).returns(@native_metric_configuration)
118   - @native_metric_configuration.expects(:destroy).returns()
119   - get :remove, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @native_metric_configuration.id
120   - assert_response :redirect
121   - end
122   -
123   -end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
... ... @@ -1,83 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_fixtures"
4   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
5   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
6   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"
7   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_fixtures"
8   -
9   -class MezuroPluginRangeControllerTest < ActionController::TestCase
10   -
11   - def setup
12   - @controller = MezuroPluginRangeController.new
13   - @request = ActionController::TestRequest.new
14   - @response = ActionController::TestResponse.new
15   - @profile = fast_create(Profile)
16   -
17   - @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
18   - @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
19   - @configuration = ConfigurationFixtures.configuration
20   -
21   - @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name, :configuration_id => 42)
22   - @content.expects(:send_configuration_to_service).returns(nil)
23   - @content.expects(:validate_configuration_name).returns(true)
24   - @content.save
25   -
26   - @created_range = RangeFixtures.created_range
27   - @range = RangeFixtures.range
28   - @created_range_hash = RangeFixtures.created_range_hash
29   - @range_hash = RangeFixtures.range_hash
30   -
31   - @reading = ReadingFixtures.reading
32   - end
33   -
34   - should 'set correct attributes to create a new range' do
35   - Kalibro::Reading.expects(:readings_of).with(@metric_configuration.reading_group_id).returns([@reading])
36   - get :new, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id, :compound => @metric_configuration.metric.compound
37   - assert_equal @content.id, assigns(:content_id)
38   - assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
39   - assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
40   - assert_equal @metric_configuration.reading_group_id, assigns(:reading_group_id)
41   - assert_equal @metric_configuration.metric.compound, assigns(:compound)
42   - assert_response :success
43   - end
44   -
45   - should 'set correct attributes to edit a range' do
46   - Kalibro::Reading.expects(:readings_of).with(@metric_configuration.reading_group_id).returns([@reading])
47   - Kalibro::Range.expects(:ranges_of).with(@metric_configuration.id).returns([@range])
48   - get :edit, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :range_id => @range.id, :reading_group_id => @metric_configuration.reading_group_id
49   - assert_equal @content.id, assigns(:content_id)
50   - assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
51   - assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
52   - assert_equal @range, assigns(:range)
53   - assert_response :success
54   - end
55   -
56   - should 'test create instance range' do
57   - Kalibro::Range.expects(:request).with(:save_range, {
58   - :metric_configuration_id => @metric_configuration.id,
59   - :range => @created_range.to_hash}).returns(:range_id => @range.id)
60   - Kalibro::Reading.expects(:find).with(@created_range.reading_id).returns(@reading)
61   - get :create, :profile => @profile.identifier, :range => @created_range_hash, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id, :compound => @metric_configuration.metric.compound
62   - assert_equal @range.id, assigns(:range).id
63   - assert_equal @metric_configuration.reading_group_id, assigns(:reading_group_id)
64   - assert_equal @metric_configuration.metric.compound, assigns(:compound)
65   - assert_response :success
66   - end
67   -
68   - should 'test update range' do
69   - Kalibro::Range.expects(:request).with(:save_range, {
70   - :metric_configuration_id => @metric_configuration.id,
71   - :range => @range.to_hash}).returns(:range_id => @range.id)
72   - get :update, :profile => @profile.identifier, :range => @range_hash, :metric_configuration_id => @metric_configuration.id
73   - assert_equal @range.id, assigns(:range).id
74   - assert_response :success
75   - end
76   -
77   - should 'test remove range in native metric configuration' do
78   - Kalibro::Range.expects(:new).with({:id => @range.id}).returns(@range)
79   - @range.expects(:destroy).with().returns()
80   - get :remove, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :range_id => @range.id, :compound => false
81   - assert_response :redirect
82   - end
83   -end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_reading_controller_test.rb
... ... @@ -1,83 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_fixtures"
4   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_group_content_fixtures"
5   -
6   -class MezuroPluginReadingControllerTest < ActionController::TestCase
7   -
8   - def setup
9   - @controller = MezuroPluginReadingController.new
10   - @request = ActionController::TestRequest.new
11   - @response = ActionController::TestResponse.new
12   - @profile = fast_create(Profile)
13   -
14   - @reading = ReadingFixtures.reading
15   - @created_reading = ReadingFixtures.created_reading
16   - @reading_hash = ReadingFixtures.hash
17   - @content = MezuroPlugin::ReadingGroupContent.new(:profile => @profile, :name => name)
18   - @content.expects(:send_reading_group_to_service).returns(nil)
19   - @content.save
20   - end
21   -
22   - should 'set variables to create a new reading' do
23   - parser = "|*|"
24   - Kalibro::Reading.expects(:readings_of).with(@content.reading_group_id).returns([@reading])
25   - get :new, :profile => @profile.identifier, :id => @content.id
26   - assert_equal parser, assigns(:parser)
27   - assert_equal ["#{@reading.label}#{parser}#{@reading.grade}#{parser}"], assigns(:labels_and_grades)
28   - assert_equal @content.id, assigns(:reading_group_content).id
29   - assert_response :success
30   - end
31   -
32   - should 'create a reading' do
33   - Kalibro::Reading.expects(:new).with(@reading_hash.to_s).returns(@created_reading)
34   - @created_reading.expects(:save).with(@content.reading_group_id).returns(true)
35   - get :save, :profile => @profile.identifier, :id => @content.id, :reading => @reading_hash
36   - assert @created_reading.errors.empty?
37   - assert_response :redirect
38   - end
39   -
40   - should 'put an Exception in reading when an error occurs in create action' do
41   - @created_reading.errors = [Exception.new]
42   - Kalibro::Reading.expects(:new).with(@reading_hash.to_s).returns(@created_reading)
43   - @created_reading.expects(:save).with(@content.reading_group_id).returns(false)
44   - get :save, :profile => @profile.identifier, :id => @content.id, :reading => @reading_hash
45   - assert !@created_reading.errors.empty?
46   - assert_response :redirect
47   - end
48   -
49   - should 'set variables to edit a reading' do
50   - parser = "|*|"
51   - another_reading = ReadingFixtures.reading
52   - another_reading.id = 10
53   - Kalibro::Reading.expects(:readings_of).with(@content.reading_group_id).returns([@reading, another_reading])
54   - Kalibro::Reading.expects(:find).with(@reading.id.to_s).returns(@reading)
55   - get :edit, :profile => @profile.identifier, :id => @content.id, :reading_id => @reading.id
56   - assert_equal @content.id, assigns(:reading_group_content).id
57   - assert_equal @reading, assigns(:reading)
58   - assert_equal parser, assigns(:parser)
59   - assert_equal ["#{another_reading.label}#{parser}#{another_reading.grade}#{parser}"], assigns(:labels_and_grades)
60   - assert_response :success
61   - end
62   -
63   - should 'destroy a reading' do
64   - @reading.expects(:destroy)
65   - Kalibro::Reading.expects(:find).with(@reading.id.to_s).returns(@reading)
66   -
67   - get :destroy, :profile => @profile.identifier, :id => @content.id, :reading_id => @reading.id
68   -
69   - assert @reading.errors.empty?
70   - assert_response :redirect
71   - end
72   -
73   - should 'put an Exception in reading when an error occurs in destroy action' do
74   - @reading.errors = [Exception.new]
75   - @reading.expects(:destroy)
76   - Kalibro::Reading.expects(:find).with(@reading.id.to_s).returns(@reading)
77   -
78   - get :destroy, :profile => @profile.identifier, :id => @content.id, :reading_id => @reading.id
79   -
80   - assert !@reading.errors.empty?
81   - assert_response :redirect
82   - end
83   -end
plugins/mezuro/test/functional/profile/mezuro_plugin_module_result_controller_test.rb
... ... @@ -1,58 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
4   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_result_fixtures"
5   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/date_metric_result_fixtures"
6   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/date_module_result_fixtures"
7   -
8   -class MezuroPluginModuleResultControllerTest < ActionController::TestCase
9   -
10   - def setup
11   - @controller = MezuroPluginModuleResultController.new
12   - @request = ActionController::TestRequest.new
13   - @response = ActionController::TestResponse.new
14   - @profile = fast_create(Community)
15   -
16   - @module_result_hash = ModuleResultFixtures.module_result_hash
17   - @metric_result_hash = MetricResultFixtures.native_metric_result_hash
18   - @date_metric_result_hash = DateMetricResultFixtures.date_metric_result_hash
19   - @date_module_result_hash = DateModuleResultFixtures.date_module_result_hash
20   - end
21   -
22   - should 'find module result on kalibro' do
23   - parent_module_result = ModuleResultFixtures.parent_module_result_hash
24   - Kalibro::ModuleResult.expects(:request).with(:get_module_result, { :module_result_id => @module_result_hash[:id].to_i }).
25   - returns({:module_result => @module_result_hash})
26   - Kalibro::MetricResult.expects(:request).with(:metric_results_of, { :module_result_id => @module_result_hash[:id].to_i }).
27   - returns({:metric_result => @metric_result_hash})
28   - Kalibro::ModuleResult.expects(:request).with(:get_module_result, { :module_result_id => @module_result_hash[:parent_id].to_i }).
29   - returns({:module_result => parent_module_result})
30   - Kalibro::ModuleResult.expects(:request).with(:children_of, {:module_result_id => @module_result_hash[:id].to_i}).
31   - returns({:module_result => nil})
32   - get :module_result, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id]
33   - assert_equal @module_result_hash[:grade].to_f, assigns(:module_result).grade
34   - assert_equal @metric_result_hash[:value].to_f, assigns(:metric_results).first.value
35   - assert_response :success
36   - #TODO assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
37   - end
38   -
39   - should 'get metric result history' do
40   - metric_name = @metric_result_hash[:configuration][:metric][:name]
41   - Kalibro::MetricResult.expects(:request).with(:history_of_metric, { :metric_name => metric_name, :module_result_id => @module_result_hash[:id].to_i }).
42   - returns({:date_metric_result => @date_metric_result_hash})
43   - get :metric_result_history, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id], :metric_name => metric_name
44   - assert_equal DateTime.parse(@date_metric_result_hash[:date]), assigns(:history).first.date
45   - assert_response :success
46   - #TODO assert_select
47   - end
48   -
49   - should 'get module result history' do
50   - Kalibro::ModuleResult.expects(:request).with(:history_of_module, { :module_result_id => @module_result_hash[:id].to_i }).
51   - returns({:date_module_result => @date_module_result_hash})
52   - get :module_result_history, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id]
53   - assert_equal DateTime.parse(@date_module_result_hash[:date]), assigns(:history).first.date
54   - assert_response :success
55   - #TODO assert_select
56   - end
57   -
58   -end
plugins/mezuro/test/functional/profile/mezuro_plugin_processing_controller_test.rb
... ... @@ -1,60 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/processing_fixtures"
4   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/throwable_fixtures"
5   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/repository_fixtures"
6   -
7   -
8   -class MezuroPluginProcessingControllerTest < ActionController::TestCase
9   - def setup
10   - @controller = MezuroPluginProcessingController.new
11   - @request = ActionController::TestRequest.new
12   - @response = ActionController::TestResponse.new
13   - @profile = fast_create(Community)
14   -
15   - @repository_id = RepositoryFixtures.repository.id
16   - @processing = ProcessingFixtures.processing
17   - @processing_hash = ProcessingFixtures.processing_hash
18   - @processing_with_error_hash = ProcessingFixtures.processing_with_error_hash
19   - end
20   -
21   - should 'render last processing state' do
22   - Kalibro::Processing.expects(:processing_of).with(@repository_id).returns(@processing)
23   - get :state, :profile => @profile.identifier, :repository_id => @repository_id
24   - assert_response :success
25   - assert_equal @processing.state, @response.body
26   - end
27   -
28   - should 'render a processing state in a specific date' do
29   - Kalibro::Processing.expects(:processing_with_date_of).with(@repository_id, @processing.date).returns(@processing)
30   - get :state, :profile => @profile.identifier, :repository_id => @repository_id, :date => @processing.date
31   - assert_response :success
32   - assert_equal @processing.state, @response.body
33   - end
34   -
35   - should 'render processing with error' do
36   - Kalibro::Processing.expects(:request).with(:has_ready_processing, {:repository_id => @repository_id}).returns({:exists => false})
37   - Kalibro::Processing.expects(:request).with(:last_processing, :repository_id => @repository_id).returns({:processing => @processing_with_error_hash})
38   - get :processing, :profile => @profile.identifier, :repository_id => @repository_id
39   - assert_response :success
40   - assert_equal @processing_with_error_hash[:state], assigns(:processing).state
41   - #TODO How to assert from view? assert_select('h3', 'ERROR')
42   - end
43   -
44   - should 'test project result without date' do
45   - Kalibro::Processing.expects(:request).with(:has_ready_processing, {:repository_id => @repository_id}).returns({:exists => true})
46   - Kalibro::Processing.expects(:request).with(:last_ready_processing, {:repository_id => @repository_id}).returns({:processing => @processing_hash})
47   - get :processing, :profile => @profile.identifier, :repository_id => @repository_id
48   - assert_response :success
49   - assert_select('h4', 'Last Result')
50   - end
51   -
52   - should 'test project results from a specific date' do
53   - Kalibro::Processing.expects(:request).with(:has_processing_after, {:repository_id => @repository_id, :date => @processing.date}).returns({:exists => true})
54   - Kalibro::Processing.expects(:request).with(:first_processing_after, :repository_id => @repository_id, :date => @processing.date).returns({:processing => @processing_hash})
55   - get :processing, :profile => @profile.identifier, :repository_id => @repository_id, :date => @processing.date
56   - assert_response :success
57   - assert_select('h4', 'Last Result')
58   - end
59   -
60   -end
plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb
... ... @@ -1,103 +0,0 @@
1   -require 'test_helper'
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/processing_fixtures"
4   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/throwable_fixtures"
5   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/repository_fixtures"
6   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_content_fixtures"
7   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
8   -
9   -class MezuroPluginRepositoryControllerTest < ActionController::TestCase
10   -
11   - def setup
12   - @controller = MezuroPluginRepositoryController.new
13   - @request = ActionController::TestRequest.new
14   - @response = ActionController::TestResponse.new
15   - @profile = fast_create(Community)
16   -
17   - @configuration = ConfigurationFixtures.configuration
18   - @repository_types = RepositoryFixtures.types
19   - @all_configurations = ConfigurationFixtures.all
20   - @repository = RepositoryFixtures.repository
21   - @repository_hash = RepositoryFixtures.hash
22   - @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => name)
23   - @content.expects(:send_project_to_service).returns(nil)
24   - @content.save
25   - end
26   -
27   - should 'set variables to create a new repository' do
28   - Kalibro::Repository.expects(:repository_types).returns(@repository_types)
29   - Kalibro::Configuration.expects(:all).returns(@all_configurations)
30   -
31   - get :new, :profile => @profile.identifier, :id => @content.id
32   -
33   - assert_equal @content.id, assigns(:project_content).id
34   - assert_equal @repository_types, assigns(:repository_types)
35   - assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first
36   - assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last
37   - assert_response :success
38   - end
39   -
40   - should 'save a repository' do
41   - Kalibro::Repository.expects(:new).returns(@repository)
42   - @repository.expects(:save).with(@content.project_id).returns(true)
43   - @repository.expects(:process)
44   - get :save, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
45   - assert @repository.errors.empty?
46   - assert_response :redirect
47   - end
48   -
49   - should 'not save a repository' do
50   - @repository.errors = [Exception.new]
51   - Kalibro::Repository.expects(:new).returns(@repository)
52   - @repository.expects(:save).with(@content.project_id).returns(false)
53   - get :save, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
54   - assert !@repository.errors.empty?
55   - assert_response :redirect
56   - end
57   -
58   - should 'set variables to edit a repository' do
59   - Kalibro::Repository.expects(:repository_types).returns(@repository_types)
60   - Kalibro::Configuration.expects(:all).returns(@all_configurations)
61   - Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository])
62   -
63   - get :edit, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id
64   -
65   - assert_equal @content.id, assigns(:project_content).id
66   - assert_equal @repository_types, assigns(:repository_types)
67   - assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first
68   - assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last
69   - assert_equal @repository, assigns(:repository)
70   - assert_response :success
71   - end
72   -
73   - should 'set variables to show a repository' do
74   - Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository])
75   - Kalibro::Configuration.expects(:find).with(@repository.configuration_id).returns(@configuration)
76   -
77   - get :show, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id
78   -
79   - assert_equal @content.id, assigns(:project_content).id
80   - assert_equal @repository, assigns(:repository)
81   - assert_equal @configuration.name, assigns(:configuration_name)
82   - assert_response :success
83   - end
84   -
85   - should 'destroy a repository' do
86   - Kalibro::Repository.expects(:new).with(:id => @repository.id.to_s).returns(@repository)
87   - @repository.expects(:destroy)
88   - get :destroy, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id
89   -
90   - assert @repository.errors.empty?
91   - assert_response :redirect
92   - end
93   -
94   - should 'not destroy a repository' do
95   - @repository.errors = [Exception.new]
96   - Kalibro::Repository.expects(:new).with(:id => @repository.id.to_s).returns(@repository)
97   - @repository.expects(:destroy)
98   - get :destroy, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id
99   -
100   - #TODO verify if it is redirected to the right page
101   - assert_response :redirect
102   - end
103   -end
plugins/mezuro/test/unit/kalibro/base_tool_test.rb
... ... @@ -1,27 +0,0 @@
1   -require "test_helper"
2   -require "#{Rails.root}/plugins/mezuro/test/fixtures/base_tool_fixtures"
3   -
4   -class BaseToolTest < ActiveSupport::TestCase
5   -
6   - def setup
7   - @hash = BaseToolFixtures.base_tool_hash
8   - @base_tool = BaseToolFixtures.base_tool
9   - end
10   -
11   - should 'create base tool from hash' do
12   - assert_equal @hash[:name], Kalibro::BaseTool.new(@hash).name
13   - end
14   -
15   - should 'get base tool names' do
16   - names = ['Analizo', 'Checkstyle']
17   - Kalibro::BaseTool.expects(:request).with(:all_base_tool_names).returns({:base_tool_name => names})
18   - assert_equal names, Kalibro::BaseTool.all_names
19   - end
20   -
21   - should 'get base tool by name' do
22   - request_body = {:base_tool_name => @base_tool.name}
23   - Kalibro::BaseTool.expects(:request).with(:get_base_tool, request_body).returns({:base_tool => @hash})
24   - assert_equal @base_tool.name, Kalibro::BaseTool.find_by_name(@base_tool.name).name
25   - end
26   -
27   -end
plugins/mezuro/test/unit/kalibro/compound_metric_test.rb
... ... @@ -1,20 +0,0 @@
1   -require "test_helper"
2   -
3   -require "#{Rails.root}/plugins/mezuro/test/fixtures/compound_metric_fixtures"
4   -
5   -class CompoundMetricTest < ActiveSupport::TestCase
6   -
7   - def setup
8   - @hash = CompoundMetricFixtures.compound_metric_hash
9   - @metric = CompoundMetricFixtures.compound_metric
10   - end
11   -
12   - should 'create compound metric from hash' do
13   - assert_equal @hash[:script], Kalibro::CompoundMetric.new(@hash).script
14   - end
15   -
16   - should 'convert compound metric to hash' do
17   - assert_equal @hash, @metric.to_hash
18   - end
19   -
20   -end
plugins/mezuro/test/unit/kalibro/compound_metric_with_error_test.rb
... ... @@ -1,20 +0,0 @@
1   -require "test_helper"
2   -
3   -require "#{Rails.root}/plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures"
4   -
5   -class CompoundMetricWithErrorTest < ActiveSupport::TestCase
6   -
7   - def setup
8   - @hash = CompoundMetricWithErrorFixtures.compound_metric_with_error_hash
9   - @compound_metric_with_error = CompoundMetricWithErrorFixtures.compound_metric_with_error
10   - end
11   -
12   - should 'create error from hash' do
13   - assert_equal @hash[:error][:message], Kalibro::CompoundMetricWithError.new(@hash).error.message
14   - end
15   -
16   - should 'convert error to hash' do
17   - assert_equal @hash, @compound_metric_with_error.to_hash
18   - end
19   -
20   -end