Skip to content

Commit

Permalink
Merge pull request #1427 from KPB-US/additional-tests
Browse files Browse the repository at this point in the history
Additional tests
  • Loading branch information
mfrederickson committed May 27, 2017
2 parents ab1e337 + c7cba85 commit 8343933
Show file tree
Hide file tree
Showing 10 changed files with 202 additions and 21 deletions.
2 changes: 1 addition & 1 deletion lib/concerto/content_converter.rb
Expand Up @@ -72,7 +72,7 @@ def self.convert(media)

# process it with docsplit via the api
begin
if original_filepath.end_with?('.pdf') && `which pdftoppm`.present?
if original_filepath.end_with?('.pdf') && command?('pdftoppm')
Rails.logger.debug("pdftoppm -r 300 -singlefile -png \"#{original_filepath}\" \"/tmp/#{File.basename(original_filepath,".*")}_1\"")
`pdftoppm -r 300 -singlefile -png "#{original_filepath}" "/tmp/#{File.basename(original_filepath, ".*")}_1"`
else
Expand Down
12 changes: 6 additions & 6 deletions lib/cron.rb
@@ -1,3 +1,4 @@
# :nocov:
require 'clockwork'

require './config/boot'
Expand All @@ -20,16 +21,15 @@ module Clockwork
every(1.day, 'Deny Expired Content Submissions') do
Submission.delay.deny_old_expired
end
if RUBY_VERSION >= "1.9"
every(1.day, 'Remove old public activity entries') do

if RUBY_VERSION >= "1.9"
every(1.day, 'Remove old public activity entries') do
unless ConcertoConfig[:keep_activity_log].to_i == 0
activities = PublicActivity::Activity.where("created_at < :days", {days: ConcertoConfig[:keep_activity_log].to_i.days.ago}).destroy_all
end
end
end
end

ConcertoPlugin.install_cron_jobs(self)
end


# :nocov:
2 changes: 1 addition & 1 deletion lib/mac_addr.rb
Expand Up @@ -38,7 +38,7 @@ def self.to_hex(int_addr)
return expand(hex)
end

# Concert mac address to an integer.
# Convert mac address to an integer.
#
# @param hex_addr [String] Expanded Mac address.
# @return [Integer] Integer mac address.
Expand Down
88 changes: 81 additions & 7 deletions test/functional/groups_controller_test.rb
Expand Up @@ -4,35 +4,109 @@ class GroupsControllerTest < ActionController::TestCase
include Devise::TestHelpers

def setup
request.env["devise.mapping"] = Devise.mappings[:user]
request.env['devise.mapping'] = Devise.mappings[:user]
end

test "not signed in user has no personal groups" do
test 'not signed in user has no personal groups' do
get :index
assert assigns(:my_groups)
assert_equal [], assigns(:my_groups)
assert_equal 1, assigns(:groups).count # This is a 1 because the other group has no reason to be public.
end

test "signed in user has personal groups" do
test 'signed in user has personal groups' do
sign_in users(:katie)
get :index
assert assigns(:my_groups)
assert_equal 2, assigns(:my_groups).count
assert_equal 2, assigns(:groups).count
end

test "not signed in user can see public group" do
get :show, :id => groups(:wtg).id
test 'not signed in user can see public group' do
get :show, id: groups(:wtg).id
assert_equal groups(:wtg), assigns(:group)
assert_response :success
end

test "signed in user can see their groups" do
test 'admin can add new group' do
sign_in users(:admin)
get :new
assert_response :success
assert assigns(:group)
end

test 'admin can manage members' do
sign_in users(:admin)
get :manage_members, id: groups(:rpitv).id
assert_response :success
assert assigns(:group)
assert_equal 1, assigns(:denied).count
end

test 'regular member cannot manage members' do
sign_in users(:katie)
get :manage_members, id: groups(:rpitv).id
assert_redirected_to root_path
end

test 'leader can edit group' do
sign_in users(:katie)
g = groups(:wtg)
get :edit, id: g.id
assert_response :success
assert assigns(:group)
end

test 'leader can update group' do
sign_in users(:katie)
g = groups(:wtg)
g.name = 'name changed'
put :update, id: g.id, group: { name: g.name }
assert assigns(:group)
assert_redirected_to group_path(g)
end

test 'regular member cannot edit group' do
sign_in users(:katie)
g = groups(:rpitv)
get :edit, id: g.id
assert_redirected_to root_path
end

test 'admin can create group' do
sign_in users(:admin)
assert_difference('Group.count') do
post :create, group: {
name: 'a new group'
}
end
g = assigns(:group)
assert_redirected_to group_path(g.id)
end

test 'can destroy group' do
sign_in users(:admin)
g = groups(:unused)
assert_difference('Group.count', -1) do
delete :destroy, id: g.id
end
assert_redirected_to groups_path
end

test 'cannot destroy group with screens' do
sign_in users(:admin)
g = groups(:wtg)
assert_difference('Group.count', 0) do
delete :destroy, id: g.id
end
assert_redirected_to group_path(g)
end

test 'signed in user can see their groups' do
sign_in users(:katie)
groups = [groups(:wtg), groups(:rpitv)]
groups.each do |g|
get :show, :id => g.id
get :show, id: g.id
assert_equal g, assigns(:group)
assert_response :success
end
Expand Down
24 changes: 24 additions & 0 deletions test/unit/command_check_test.rb
@@ -0,0 +1,24 @@
require 'test_helper'

# these are not reported in the simplecov report as covered
class CommandCheckTest < ActiveSupport::TestCase
test 'which should find ruby' do
assert which('ruby').present?
end

test 'command? should find ruby' do
assert command?('ruby')
end

test 'command? should not find bogus file' do
assert_not command?('completelybogusfile123')
end

test 'system should have mysql' do
assert system_has_mysql? && mysql_location.present?
end

test 'system should have postgres' do
assert system_has_postgres? && postgres_location.present?
end
end
8 changes: 4 additions & 4 deletions test/unit/concerto_plugin_test.rb
Expand Up @@ -12,18 +12,18 @@ class ConcertoPluginTest < ActiveSupport::TestCase

# not a valid git
# some of these prompt for a github account, so they're commented out until I can find a solution
# p = ConcertoPlugin.new(:gem_name => 'concerto_weather', :source => 'git',
# p = ConcertoPlugin.new(:gem_name => 'concerto_weather', :source => 'git',
# :source_url => 'http://github.com/concerto/concerto-weather.git')
# assert p.valid?
p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'git',
p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'git',
:source_url => '')
assert !p.valid?
# p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'git',
# p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'git',
# :source_url => 'http://github.com/concerto/concerto_invalidgem.git')
# assert !p.valid?

# path
p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'path',
p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'path',
:source_url => '')
assert !p.valid?
p = ConcertoPlugin.new(:gem_name => 'concerto_invalidgem', :source => 'path',
Expand Down
13 changes: 13 additions & 0 deletions test/unit/frontend_content_order_test.rb
@@ -0,0 +1,13 @@
require 'test_helper'

class FrontendContentOrderTest < ActiveSupport::TestCase
test 'default shuffler is BaseShuffle' do
s = FrontendContentOrder.load_shuffler
assert_equal BaseShuffle, s
end

test 'invalid shuffler results in default shuffler' do
s = FrontendContentOrder.load_shuffler('BogusShuFFlerz')
assert_equal BaseShuffle, s
end
end
34 changes: 34 additions & 0 deletions test/unit/image_magick_test.rb
Expand Up @@ -94,10 +94,44 @@ def teardown
assert_equal 200, result.rows
end

test "resize with invalid options returns empty image" do
@image = ConcertoImageMagick.load_image(@graphic_data)
result = ConcertoImageMagick.resize(@image, -100, -200, true, true)
assert result.columns == 0
assert result.rows == 0
end

test "crop image" do
@image = ConcertoImageMagick.load_image(@graphic_data)
result = ConcertoImageMagick.crop(@image, 100, 200)
assert_equal 100, result.columns
assert_equal 200, result.rows
end

test 'new image returns image of specified size' do
img = ConcertoImageMagick.new_image(100, 200)
assert_equal 100, img.columns
assert_equal 200, img.rows
end

test 'image_info returns info about image' do
img = ConcertoImageMagick.load_image(@graphic_data)
info = ConcertoImageMagick.image_info(img)
assert info[:size] == img.filesize
assert info[:density] == img.density
assert info[:width] == img.columns
assert info[:height] == img.rows
end

test 'graphic_transform supports cropping' do
class OmClass
attr_accessor :file_contents
end
o = OmClass.new
o.file_contents = @graphic_data

result = ConcertoImageMagick.graphic_transform(o, crop: true, width: 1, height: 1)
assert result.rows == 1
assert result.columns == 1
end
end
11 changes: 11 additions & 0 deletions test/unit/mac_addr_test.rb
@@ -0,0 +1,11 @@
require 'test_helper'

class MacAddrTest < ActiveSupport::TestCase
test 'to_i' do
assert_equal 1829701878732, MacAddr.to_i('01:AA:02:BB:03:CC')
end

test 'to_hex' do
assert_equal '01:aa:02:bb:03:cc', MacAddr.to_hex(1829701878732)
end
end
29 changes: 27 additions & 2 deletions test/unit/version_check_test.rb
@@ -1,7 +1,32 @@
require 'test_helper'

class VersionCheckTest < ActiveSupport::TestCase
test 'should return nil' do
assert true
test 'STRING should match pattern' do
assert /[0-9].[0-9].[0-9]/ =~ Concerto::VERSION::STRING
end

test 'dynamic should match pattern' do
Rails.cache.delete('VERSION::dynamic')
assert /[0-9].[0-9].[0-9]-[0-9]{1,3}-[0-9a-z]+/ =~ Concerto::VERSION.dynamic
end

test 'version check latest version should match pattern' do
Rails.cache.delete('concerto_version')
Rails.cache.delete('concerto_version_time')
v = VersionCheck.latest_version
assert /[0-9].[0-9].[0-9]/ =~ v, 'latest_verison does not match expected format'

assert v == VersionCheck.latest_version, 'latest_version is not cached'
end

test 'latest version is cached for 24 hours' do
Rails.cache.write('concerto_version', '1')
Rails.cache.write('concerto_version_time', Time.now - 86300)
v = VersionCheck.latest_version
assert_equal '1', v

Rails.cache.write('concerto_version_time', Time.now - 86500)
v = VersionCheck.latest_version
assert_not_equal '1', v
end
end

0 comments on commit 8343933

Please sign in to comment.