diff --git a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb index 3a5b2eb..894b34c 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb @@ -31,11 +31,7 @@ class MezuroPluginProfileController < ProfileController def project_tree content = profile.articles.find(params[:id]) project_result = content.project_result - if params[:module_name].nil? or params[:module_name] == content.project.name - source_tree = project_result.source_tree - else - source_tree = project_result.get_node(params[:module_name]) - end + source_tree = project_result.node_of(params[:module_name]) render :partial =>'content_viewer/source_tree', :locals => { :source_tree => source_tree, :project_name => content.project.name} end diff --git a/plugins/mezuro/lib/kalibro/entities/project_result.rb b/plugins/mezuro/lib/kalibro/entities/project_result.rb index ac9c63d..4cf5e3a 100644 --- a/plugins/mezuro/lib/kalibro/entities/project_result.rb +++ b/plugins/mezuro/lib/kalibro/entities/project_result.rb @@ -31,6 +31,14 @@ class Kalibro::Entities::ProjectResult < Kalibro::Entities::Entity ('%2d' % amount).sub(/\s/, '0') end + def node_of(module_name) + if module_name.nil? or module_name == project.name + node = source_tree + else + node = get_node(module_name) + end + end + def get_node(module_name) path = Kalibro::Entities::Module.parent_names(module_name) parent = @source_tree diff --git a/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb b/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb index 3ca5c3f..4170568 100644 --- a/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb +++ b/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb @@ -54,10 +54,10 @@ class MezuroPluginProfileControllerTest < ActionController::TestCase Kalibro::Client::ProjectResultClient.expects(:last_result).with(@name).returns(@project_result) get :project_result, :profile => @profile.identifier, :id => @content.id assert_response 200 - assert_select('h3', 'LAST RESULT') + assert_select('h4', 'Last Result') end - should 'get metric results for a module' do + should 'get module result' do create_project_content Kalibro::Client::ModuleResultClient.expects(:module_result).with(@content, @name).returns(@module_result) get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @name diff --git a/plugins/mezuro/test/unit/kalibro/entities/project_result_test.rb b/plugins/mezuro/test/unit/kalibro/entities/project_result_test.rb index 44415e9..1957f31 100644 --- a/plugins/mezuro/test/unit/kalibro/entities/project_result_test.rb +++ b/plugins/mezuro/test/unit/kalibro/entities/project_result_test.rb @@ -34,4 +34,16 @@ class ProjectResultTest < ActiveSupport::TestCase node = @result.get_node("org.Window") assert_equal @hash[:source_tree][:child][2][:child].first, node.to_hash end + + should 'return source tree node when nil is given' do + assert_equal @hash[:source_tree], @result.node_of(nil).to_hash + end + + should 'return source tree node when project name is given' do + assert_equal @hash[:source_tree], @result.node_of(@result.project.name).to_hash + end + + should 'return correct node when module name is given' do + assert_equal @hash[:source_tree][:child][1], @result.node_of("main").to_hash + end end -- libgit2 0.21.2