Merge pull request #41 from ENSL/task/upgrade-ruby

Task/upgrade ruby
This commit is contained in:
Luke Barratt 2015-08-15 19:35:49 +01:00
commit 8285f15587
12 changed files with 313 additions and 263 deletions

View file

@ -1,9 +1,9 @@
source 'http://rubygems.org'
ruby '2.1.5'
ruby '2.2.2'
gem 'dotenv-rails', '~> 0.10.0'
gem 'rails', '~> 3.2.19'
gem 'rails', '~> 3.2.22'
gem 'mysql2', '~> 0.3.15'
gem 'dalli', '~> 2.7.0'
gem 'puma', '~> 2.11.1'
@ -23,6 +23,7 @@ gem 'country_code_select', '~> 1.0.1'
gem 'active_link_to', '~> 1.0.2'
gem 'rmagick', '~> 2.13.4', require: false
gem 'steam-condenser', github: 'koraktor/steam-condenser-ruby'
gem 'test-unit', '~> 3.1.3'
# Please install nodejs locally.
gem 'therubyracer', '~> 0.12.1' if RUBY_PLATFORM == 'x86_64-linux'
@ -59,8 +60,8 @@ group :test do
gem 'simplecov', '~> 0.7.1', require: false
gem 'codeclimate-test-reporter', '~> 0.3.0', require: nil
gem 'database_cleaner', '~> 1.2.0'
gem 'rspec-rails', '~> 2.14.1'
gem 'capybara', '~> 2.2.1'
gem 'rspec-rails', '~> 3.3.3'
gem 'capybara', '~> 2.4.4'
gem 'poltergeist', '~> 1.6.0'
gem 'selenium-webdriver', '~> 2.41.0'
gem 'factory_girl_rails', '~> 4.4.1'

View file

@ -9,12 +9,12 @@ GIT
GEM
remote: http://rubygems.org/
specs:
actionmailer (3.2.19)
actionpack (= 3.2.19)
actionmailer (3.2.22)
actionpack (= 3.2.22)
mail (~> 2.5.4)
actionpack (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
actionpack (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
@ -24,18 +24,18 @@ GEM
sprockets (~> 2.2.1)
active_link_to (1.0.2)
actionpack
activemodel (3.2.19)
activesupport (= 3.2.19)
activemodel (3.2.22)
activesupport (= 3.2.22)
builder (~> 3.0.0)
activerecord (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
activerecord (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
activesupport (3.2.19)
activeresource (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
activesupport (3.2.22)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
annotate (2.6.3)
@ -69,7 +69,7 @@ GEM
capistrano-rbenv (2.0.2)
capistrano (~> 3.1)
sshkit (~> 1.3)
capybara (2.2.1)
capybara (2.4.4)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
@ -122,19 +122,19 @@ GEM
haml (4.0.5)
tilt
hike (1.2.3)
i18n (0.6.11)
i18n (0.7.0)
journey (1.0.4)
jquery-rails (2.0.3)
railties (>= 3.1.0, < 5.0)
thor (~> 0.14)
json (1.8.1)
json (1.8.3)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
method_source (0.8.2)
mime-types (1.25.1)
mini_portile (0.5.3)
multi_json (1.10.1)
mini_portile (0.6.2)
multi_json (1.11.2)
multi_xml (0.5.5)
multipart-post (2.0.0)
mysql2 (0.3.15)
@ -145,8 +145,8 @@ GEM
net-ssh (>= 2.6.5)
net-ssh (2.9.0)
newrelic_rpm (3.7.2.195)
nokogiri (1.6.1)
mini_portile (~> 0.5.0)
nokogiri (1.6.6.2)
mini_portile (~> 0.6.0)
oj (2.5.5)
poltergeist (1.6.0)
capybara (~> 2.1)
@ -154,6 +154,7 @@ GEM
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
polyglot (0.3.5)
power_assert (0.2.4)
pry (0.9.12.6)
coderay (~> 1.0)
method_source (~> 0.8)
@ -165,46 +166,51 @@ GEM
rack (>= 1.1, < 2.0)
quiet_assets (1.0.2)
railties (>= 3.1, < 5.0)
rack (1.4.5)
rack (1.4.7)
rack-cache (1.2)
rack (>= 0.4)
rack-ssl (1.3.4)
rack
rack-test (0.6.2)
rack-test (0.6.3)
rack (>= 1.0)
rails (3.2.19)
actionmailer (= 3.2.19)
actionpack (= 3.2.19)
activerecord (= 3.2.19)
activeresource (= 3.2.19)
activesupport (= 3.2.19)
rails (3.2.22)
actionmailer (= 3.2.22)
actionpack (= 3.2.22)
activerecord (= 3.2.22)
activeresource (= 3.2.22)
activesupport (= 3.2.22)
bundler (~> 1.0)
railties (= 3.2.19)
railties (= 3.2.22)
rails_autolink (1.1.5)
rails (> 3.1)
railties (3.2.19)
actionpack (= 3.2.19)
activesupport (= 3.2.19)
railties (3.2.22)
actionpack (= 3.2.22)
activesupport (= 3.2.22)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.3.2)
rake (10.4.2)
rdoc (3.12.2)
json (~> 1.4)
rmagick (2.13.4)
rspec-core (2.14.8)
rspec-expectations (2.14.5)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.6)
rspec-rails (2.14.2)
actionpack (>= 3.0)
activemodel (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
rspec-core (3.3.2)
rspec-support (~> 3.3.0)
rspec-expectations (3.3.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.3.0)
rspec-mocks (3.3.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.3.0)
rspec-rails (3.3.3)
actionpack (>= 3.0, < 4.3)
activesupport (>= 3.0, < 4.3)
railties (>= 3.0, < 4.3)
rspec-core (~> 3.3.0)
rspec-expectations (~> 3.3.0)
rspec-mocks (~> 3.3.0)
rspec-support (~> 3.3.0)
rspec-support (3.3.0)
rubyzip (1.1.3)
sanitize (2.1.0)
nokogiri (>= 1.4.4)
@ -223,7 +229,7 @@ GEM
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
slop (3.5.0)
sprockets (2.2.2)
sprockets (2.2.3)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
@ -234,6 +240,8 @@ GEM
term-ansicolor
term-ansicolor (1.3.0)
tins (~> 1.0)
test-unit (3.1.3)
power_assert
thor (0.19.1)
tilt (1.4.1)
timecop (0.7.1)
@ -243,7 +251,7 @@ GEM
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.41)
tzinfo (0.3.44)
uglifier (2.5.0)
execjs (>= 0.3.0)
json (>= 1.8.0)
@ -270,7 +278,7 @@ DEPENDENCIES
capistrano-bundler (~> 1.1.2)
capistrano-rails (~> 1.1)
capistrano-rbenv (~> 2.0.2)
capybara (~> 2.2.1)
capybara (~> 2.4.4)
carrierwave (~> 0.10.0)
codeclimate-test-reporter (~> 0.3.0)
coffee-rails (~> 3.2.2)
@ -294,10 +302,10 @@ DEPENDENCIES
pry-byebug (~> 1.3.2)
puma (~> 2.11.1)
quiet_assets (~> 1.0.2)
rails (~> 3.2.19)
rails (~> 3.2.22)
rails_autolink (~> 1.1.5)
rmagick (~> 2.13.4)
rspec-rails (~> 2.14.1)
rspec-rails (~> 3.3.3)
sanitize (~> 2.1.0)
sass (~> 3.3.4)
sass-rails (~> 3.2.6)
@ -305,7 +313,11 @@ DEPENDENCIES
simplecov (~> 0.7.1)
sprockets (~> 2.2.1)
steam-condenser!
test-unit (~> 3.1.3)
timecop (~> 0.7.1)
tinymce-rails (~> 3.5.9)
uglifier (~> 2.5.0)
will_paginate (~> 3.0.5)
BUNDLED WITH
1.10.5

View file

@ -9,7 +9,7 @@ set :repo_url, 'https://github.com/ENSL/ensl.org.git'
set :keep_releases, 10
set :rbenv_type, :user
set :rbenv_ruby, '2.1.5'
set :rbenv_ruby, '2.2.2'
set :bundle_flags, '--quiet'
set :dotenv_role, [:app, :web]
@ -18,10 +18,10 @@ set :puma_pid, -> { File.join(shared_path, 'tmp', 'pids', 'puma.pid') }
set :writable_dirs, %w{public tmp}
set :linked_files, %w{.env}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle
public/system public/local public/uploads public/files}
set :normalize_asset_timestamps, %{public/images
set :normalize_asset_timestamps, %{public/images
public/javascripts
public/stylesheets}
@ -89,4 +89,4 @@ namespace :puma do
def valid_pid?
test "[ -f #{fetch(:puma_pid)} ]" and test "kill -0 $( cat #{fetch(:puma_pid)} )"
end
end
end

View file

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::V1::MapsController do
before do
request.accept = 'application/json'
end
end
describe '#index' do
let!(:map) { create :map }
@ -16,4 +16,4 @@ describe Api::V1::MapsController do
expect(json_map['id']).to eq(map.id)
end
end
end
end

View file

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::V1::ServersController do
before do
request.accept = 'application/json'
end
end
describe '#index' do
let!(:server) { create :server, :active }
@ -17,4 +17,4 @@ describe Api::V1::ServersController do
expect(json_server['id']).to eq(server.id)
end
end
end
end

View file

@ -40,18 +40,21 @@ describe Api::V1::UsersController do
expect(response).to be_success
expect(json['bans']['mute']).to eq(true)
end
it 'returns correct ban if user gather banned' do
create :ban, :gather, user: @user
get :show, id: @user.id
expect(response).to be_success
expect(json['bans']['gather']).to eq(true)
end
it 'returns correct ban if user site banned' do
create :ban, :site, user: @user
get :show, id: @user.id
expect(response).to be_success
expect(json['bans']['site']).to eq(true)
end
it 'returns team information' do
@user.destroy
@user_with_team = create :user_with_team, :chris
@ -81,7 +84,7 @@ describe Api::V1::UsersController do
user_json = json["users"].first
nested_team_json = user_json["team"]
expect(user_json).to have_key("username")
expect(user_json).to have_key("steamid")
expect(user_json).to have_key("team")

View file

@ -15,59 +15,65 @@
# ip :string(255)
#
require 'spec_helper'
require "spec_helper"
describe Ban do
let!(:user) { create :user }
let(:ban) { Ban.new }
let!(:server) { create :server }
let!(:user) { create :user }
let(:ban) { Ban.new }
let!(:server) { create :server }
describe '#check_user' do
it "assigns user by user_name" do
ban.user_name = user.username
ban.check_user
expect(ban.user).to eq(user)
end
it "assigns user and server if user_name not present" do
ban.steamid = user.steamid
ban.addr = server.addr
ban.check_user
expect(ban.user).to eq(user)
expect(ban.server).to eq(server)
end
end
describe 'Permissions' do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let!(:server_user) { create :user }
let(:ban) { Ban.new }
describe "#check_user" do
it "assigns user by user_name" do
ban.user_name = user.username
ban.check_user
describe 'can_create?' do
it 'returns true for admins' do
expect(ban.can_create? admin).to be_true
end
it 'returns false for non-admins' do
expect(ban.can_create? user).to be_false
end
end
expect(ban.user).to eq(user)
end
describe 'can_destroy?' do
it 'returns true for admin' do
expect(ban.can_destroy? admin).to be_true
end
it 'returns false for non-admins' do
expect(ban.can_destroy? user).to be_false
end
end
it "assigns user and server if user_name not present" do
ban.steamid = user.steamid
ban.addr = server.addr
ban.check_user
describe 'can_update?' do
it 'returns true for admin' do
expect(ban.can_update? admin).to be_true
end
it 'returns false for non-admins' do
expect(ban.can_update? user).to be_false
end
end
end
expect(ban.user).to eq(user)
expect(ban.server).to eq(server)
end
end
describe "Permissions" do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let!(:server_user) { create :user }
let(:ban) { Ban.new }
describe "can_create?" do
it "returns true for admins" do
expect(ban.can_create? admin).to be_truthy
end
it "returns false for non-admins" do
expect(ban.can_create? user).to be_falsey
end
end
describe "can_destroy?" do
it "returns true for admin" do
expect(ban.can_destroy? admin).to be_truthy
end
it "returns false for non-admins" do
expect(ban.can_destroy? user).to be_falsey
end
end
describe "can_update?" do
it "returns true for admin" do
expect(ban.can_update? admin).to be_truthy
end
it "returns false for non-admins" do
expect(ban.can_update? user).to be_falsey
end
end
end
end

View file

@ -15,46 +15,53 @@
# text_parsed :text
#
require 'spec_helper'
require "spec_helper"
describe 'User' do
describe 'Permissions' do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let(:issue) { Issue.new }
describe "User" do
describe "Permissions" do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let(:issue) { Issue.new }
describe 'can_show?' do
it 'returns true for author' do
issue.author = user
expect(issue.can_show? user).to be_true
end
it 'returns true for admin' do
expect(issue.can_show? admin).to be_true
end
it 'returns false if neither admin nor author' do
expect(issue.can_show? user).to be_false
end
end
describe 'can_create?' do
it "returns true" do
expect(issue.can_create? nil).to be_true
end
end
describe 'can_update?' do
it 'returns true for admin' do
expect(issue.can_update? admin).to be_true
end
it 'returns false for non-admin' do
expect(issue.can_update? user).to be_false
end
end
describe 'can_destroy?' do
it 'returns true for admin' do
expect(issue.can_destroy? admin).to be_true
end
it 'returns false for non-admin' do
expect(issue.can_destroy? user).to be_false
end
end
end
end
describe "can_show?" do
it "returns true for author" do
issue.author = user
expect(issue.can_show? user).to be_truthy
end
it "returns true for admin" do
expect(issue.can_show? admin).to be_truthy
end
it "returns false if neither admin nor author" do
expect(issue.can_show? user).to be_falsey
end
end
describe "can_create?" do
it "returns true" do
expect(issue.can_create? nil).to be_truthy
end
end
describe "can_update?" do
it "returns true for admin" do
expect(issue.can_update? admin).to be_truthy
end
it "returns false for non-admin" do
expect(issue.can_update? user).to be_falsey
end
end
describe "can_destroy?" do
it "returns true for admin" do
expect(issue.can_destroy? admin).to be_truthy
end
it "returns false for non-admin" do
expect(issue.can_destroy? user).to be_falsey
end
end
end
end

View file

@ -14,44 +14,50 @@
# text_parsed :text
#
require 'spec_helper'
require "spec_helper"
describe Message do
let!(:user) { create :user }
let!(:user) { create :user }
describe 'create' do
let(:message) { build :message }
it 'creates a new message' do
expect(message.valid?).to be_true
expect do
message.save!
end.to change(Message, :count).by(1)
end
end
describe "create" do
let(:message) { build :message }
describe 'Permissions' do
let(:message) { Message.new }
describe 'can_create?' do
it 'returns true for user' do
expect(message.can_create?(user)).to be_true
end
it 'returns false if user is banned' do
create :ban, :mute, user: user
expect(message.can_create?(user)).to be_false
end
end
it "creates a new message" do
expect(message.valid?).to eq(true)
expect do
message.save!
end.to change(Message, :count).by(1)
end
end
describe 'can_show?' do
let!(:message) { create :message }
it 'returns true if sender' do
expect(message.can_show?(message.sender)).to be_true
end
it 'returns true if receiver' do
expect(message.can_show?(message.recipient)).to be_true
end
it 'returns false if neither sender nor receiver' do
expect(message.can_show?(user)).to be_false
end
end
end
end
describe "Permissions" do
let(:message) { Message.new }
describe "can_create?" do
it "returns true for user" do
expect(message.can_create?(user)).to be_truthy
end
it "returns false if user is banned" do
create :ban, :mute, user: user
expect(message.can_create?(user)).to be_falsey
end
end
describe "can_show?" do
let!(:message) { create :message }
it "returns true if sender" do
expect(message.can_show?(message.sender)).to be_truthy
end
it "returns true if receiver" do
expect(message.can_show?(message.recipient)).to be_truthy
end
it "returns false if neither sender nor receiver" do
expect(message.can_show?(user)).to be_falsey
end
end
end
end

View file

@ -30,68 +30,76 @@
# category_id :integer
#
require 'spec_helper'
require "spec_helper"
describe Server do
describe 'create' do
it 'sets category to 45 if domain is NS2' do
server = create :server, domain: Server::DOMAIN_NS2
expect(server.category_id).to eq(45)
end
it 'sets category to 44 if domain is not NS2' do
server = create :server, domain: Server::DOMAIN_HLDS
expect(server.category_id).to eq(44)
end
end
describe "create" do
it "sets category to 45 if domain is NS2" do
server = create :server, domain: Server::DOMAIN_NS2
describe 'addr' do
it 'returns properly formatted IP and port number' do
ip = '1.1.1.1'
port = '8000'
server = create :server, ip: ip, port: port
expect(server.addr).to eq('1.1.1.1:8000')
end
end
expect(server.category_id).to eq(45)
end
describe 'to_s' do
it 'returns server name' do
server_name = "Foo"
server = create :server, name: server_name
expect(server.to_s).to eq(server_name)
end
end
it "sets category to 44 if domain is not NS2" do
server = create :server, domain: Server::DOMAIN_HLDS
describe 'Permissions' do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let!(:server_user) {create :user }
let!(:server) { create :server, user: server_user }
expect(server.category_id).to eq(44)
end
end
describe 'can_create?' do
it 'returns true for non-admins' do
expect(server.can_create? user).to be_true
end
end
describe "addr" do
it "returns properly formatted IP and port number" do
ip = "1.1.1.1"
port = "8000"
server = create :server, ip: ip, port: port
describe 'can_destroy?' do
it 'returns true for admin' do
expect(server.can_destroy? admin).to be_true
end
it 'returns false for non-admins' do
expect(server.can_destroy? user).to be_false
end
end
expect(server.addr).to eq("1.1.1.1:8000")
end
end
describe 'can_update?' do
it 'returns true for admin' do
expect(server.can_update? admin).to be_true
end
it 'returns true if server belongs to user' do
expect(server.can_update? server_user).to be_true
end
it 'returns false for non-admins' do
expect(server.can_update? user).to be_false
end
end
end
describe "to_s" do
it "returns server name" do
server_name = "Foo"
server = create :server, name: server_name
expect(server.to_s).to eq(server_name)
end
end
describe "Permissions" do
let!(:user) { create :user }
let!(:admin) { create :user, :admin }
let!(:server_user) { create :user }
let!(:server) { create :server, user: server_user }
describe "can_create?" do
it "returns true for non-admins" do
expect(server.can_create? user).to be_truthy
end
end
describe "can_destroy?" do
it "returns true for admin" do
expect(server.can_destroy? admin).to eq(true)
end
it "returns false for non-admins" do
expect(server.can_destroy? user).to eq(false)
end
end
describe "can_update?" do
it "returns true for admin" do
expect(server.can_update? admin).to eq(true)
end
it "returns true if server belongs to user" do
expect(server.can_update? server_user).to eq(true)
end
it "returns false for non-admins" do
expect(server.can_update? user).to eq(false)
end
end
end
end

View file

@ -24,21 +24,27 @@
require 'spec_helper'
describe User do
let!(:user) { create :user }
describe "#banned?" do
it "returns false if user is not banned" do
expect(user.banned?).to be_false
end
let!(:user) { create :user }
it "returns true if user is banned" do
ban = Ban.create! ban_type: Ban::TYPE_SITE, expiry: Time.now + 10.days, user_name: user.username
expect(user.banned?).to be_true
end
describe "#banned?" do
it "returns false if user is not banned" do
expect(user.banned?).to be_falsey
end
it "returns true for specific bans" do
ban = Ban.create! ban_type: Ban::TYPE_MUTE, expiry: Time.now + 10.days, user_name: user.username
expect(user.banned? Ban::TYPE_MUTE).to be_true
end
end
end
it "returns true if user is banned" do
Ban.create!(ban_type: Ban::TYPE_SITE,
expiry: Time.now + 10.days,
user_name: user.username)
expect(user.banned?).to be_truthy
end
it "returns true for specific bans" do
Ban.create!(ban_type: Ban::TYPE_MUTE,
expiry: Time.now + 10.days,
user_name: user.username)
expect(user.banned? Ban::TYPE_MUTE).to be_truthy
end
end
end

View file

@ -10,7 +10,7 @@ require 'rspec/rails'
require 'capybara/rspec'
require 'capybara/poltergeist'
Capybara.default_wait_time = 30
Capybara.default_wait_time = 5
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app,
timeout: 30,
@ -34,6 +34,7 @@ RSpec.configure do |config|
config.use_transactional_fixtures = false
config.color = true
config.formatter = :documentation
config.infer_spec_type_from_file_location!
config.before(:each) do
events_list_json = JSON.parse(File.read(Rails.root.join('spec/fixtures/google_calendar.json')))