diff --git a/app/assets/stylesheets/themes/default/pages/_matches.scss b/app/assets/stylesheets/themes/default/pages/_matches.scss old mode 100644 new mode 100755 index 7c02079..1cf2924 --- a/app/assets/stylesheets/themes/default/pages/_matches.scss +++ b/app/assets/stylesheets/themes/default/pages/_matches.scss @@ -156,6 +156,7 @@ div#match { .team-1, .team-2 { position: relative; + margin-bottom: 20px; .player { @include span-columns(12); @@ -167,21 +168,8 @@ div#match { position: relative; } - .controls { - top: 0; - position: absolute; - z-index: 100; - - input { - margin: 0; - } - } - - form { - - label.checkbox { - padding: 0; - } + label.checkbox { + padding: 0; } } @@ -193,16 +181,9 @@ div#match { margin: 0 0 0 10px; } - .controls { - left: 0; - } - - form { - - label.checkbox { - float: right; - margin-left: 1em; - } + label.checkbox { + float: right; + margin-left: 1em; } } @@ -210,16 +191,9 @@ div#match { @include span-columns(6); @include omega; - .controls { - right: 0; - } - - form { - - label.checkbox { - float: left; - margin-right: 1em; - } + label.checkbox { + float: left; + margin-right: 1em; } } @@ -234,6 +208,10 @@ div#match { margin: 0; } } + + form .controls { + clear: both; + } } .scoring { diff --git a/app/assets/stylesheets/themes/flat/pages/_matches.scss b/app/assets/stylesheets/themes/flat/pages/_matches.scss old mode 100644 new mode 100755 index 8ce9e99..92d98cc --- a/app/assets/stylesheets/themes/flat/pages/_matches.scss +++ b/app/assets/stylesheets/themes/flat/pages/_matches.scss @@ -155,6 +155,7 @@ div#match { .team-1, .team-2 { position: relative; + margin-bottom: 20px; .player { @include span-columns(12); @@ -166,21 +167,8 @@ div#match { position: relative; } - .controls { - top: 0; - position: absolute; - z-index: 100; - - input { - margin: 0; - } - } - - form { - - label.checkbox { - padding: 0; - } + label.checkbox { + padding: 0; } } @@ -192,16 +180,9 @@ div#match { margin: 0 0 0 10px; } - .controls { - left: 0; - } - - form { - - label.checkbox { - float: right; - margin-left: 1em; - } + label.checkbox { + float: right; + margin-left: 1em; } } @@ -209,16 +190,9 @@ div#match { @include span-columns(6); @include omega; - .controls { - right: 0; - } - - form { - - label.checkbox { - float: left; - margin-right: 1em; - } + label.checkbox { + float: left; + margin-right: 1em; } } @@ -233,6 +207,10 @@ div#match { margin: 0; } } + + form .controls { + clear: both; + } } .scoring { diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb index 8e0ea0c..690d622 100755 --- a/app/controllers/matches_controller.rb +++ b/app/controllers/matches_controller.rb @@ -6,7 +6,7 @@ class MatchesController < ApplicationController end def show - @ownpred = @match.predictions.first conditions: {user_id: cuser.id} if cuser + @ownpred = @match.predictions.first conditions: { user_id: cuser.id } if cuser @newpred = @match.predictions.build end @@ -17,8 +17,9 @@ class MatchesController < ApplicationController end def admin - @matches = Match.active.includes(:contest, :contester1, :contester2, :map1, :map2, :referee).all.group_by {|t| t.week.to_s }.to_a.reverse - render :layout => "full" + @matches = Match.active.includes(:contest, :contester1, :contester2, :map1, :map2, :referee) + .all.group_by { |t| t.week.to_s }.to_a.reverse + render layout: "full" end def extra @@ -39,7 +40,7 @@ class MatchesController < ApplicationController if @match.save flash[:notice] = t(:matches_create) - redirect_to controller: 'contests', action: 'edit', id: @match.contest + redirect_to edit_contest_path(@match.contest) else render :new end @@ -49,11 +50,11 @@ class MatchesController < ApplicationController raise AccessError unless @match.can_update? cuser, params[:match] if params[:match][:matchers_attributes] params[:match][:matchers_attributes].each do |key, matcher| - matcher['_destroy'] = matcher['_destroy'] == "keep" ? false : true - if matcher['user_id'] == "" + matcher["_destroy"] = matcher["_destroy"] == "keep" ? false : true + if matcher["user_id"] == "" params[:match][:matchers_attributes].delete key - elsif matcher['user_id'].to_i == 0 - matcher['user_id'] = User.find_by_username(matcher['user_id']).id + elsif matcher["user_id"].to_i == 0 + matcher["user_id"] = User.find_by_username(matcher["user_id"]).id end end end @@ -71,7 +72,12 @@ class MatchesController < ApplicationController end end else - render :edit + if URI(request.referer).path == match_ref_path(@match) + ref + render :ref + else + render :edit + end end end @@ -90,13 +96,13 @@ class MatchesController < ApplicationController @match.hltv_stop flash[:notice] = t(:hltv_stopped) end - redirect_to action: 'show' + redirect_to action: "show" end def destroy raise AccessError unless @match.can_destroy? cuser @match.destroy - redirect_to controller: 'contests', action: 'edit', id: @match.contest + redirect_to edit_contest_path(@match.contest) end private diff --git a/app/models/match.rb b/app/models/match.rb index c31806a..4626848 100755 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -193,7 +193,7 @@ class Match < ActiveRecord::Base end def send_notifications - Profile.all(include: :user, conditions: "notify_any_match = 1").find_each do |p| + Profile.includes(:user).where(notify_any_match: 1).find_each do |p| Notifications.match p.user, self if p.user end contester2.team.teamers.active.each do |teamer| diff --git a/app/views/matches/_lineup.html.erb b/app/views/matches/_lineup.html.erb old mode 100644 new mode 100755 index 0f9ba3a..b610794 --- a/app/views/matches/_lineup.html.erb +++ b/app/views/matches/_lineup.html.erb @@ -1,7 +1,7 @@
<% contester.lineup.each do |teamer| %>
- <% if matcher = @match.matchers.first(conditions: { user_id: teamer.user_id }) %> + <% if matcher = @match.matchers.first(conditions: { user_id: teamer.user_id, contester_id: contester.id }) %> <%= hidden_field_tag "match[matchers_attributes][#{@n}][id]", matcher.id %> <% end %> @@ -9,7 +9,7 @@ <%= hidden_field_tag "match[matchers_attributes][#{@n}][contester_id]", contester.id %> <%= hidden_field_tag "match[matchers_attributes][#{@n}][match_id]", @match.id %> <%= hidden_field_tag "match[matchers_attributes][#{@n}][merc]", false %> - <%= check_box_tag "match[matchers_attributes][#{@n}][_destroy]", "keep", @match.users.exists?(teamer.user), { id: "player_#{@n}" } %> + <%= check_box_tag "match[matchers_attributes][#{@n}][_destroy]", "keep", !matcher.nil?, { id: "player_#{@n}" } %> <%= label_tag "player_#{@n}", '', class: 'checkbox' %> @@ -45,5 +45,7 @@ <%= hidden_field_tag "match[matchers_attributes][#{@n}][_destroy]", "keep" %> <%= text_field_tag "match[matchers_attributes][#{@n}][user_id]", '', placeholder: 'Mercenary' %> + + <% @n = @n + 1 %>
diff --git a/app/views/matches/ref.html.erb b/app/views/matches/ref.html.erb old mode 100644 new mode 100755 index 5e8a0aa..fe0fa40 --- a/app/views/matches/ref.html.erb +++ b/app/views/matches/ref.html.erb @@ -16,33 +16,25 @@

Lineups

-
- <%= form_for @match do |f| %> - <%= f.error_messages %> - -
- <%= f.submit 'Save Lineup' %> -
+ <%= form_for @match do |f| %> + <%= f.error_messages %> +
<% [@match.contester1].each do |contester| %> - <%= render partial: "lineup", locals: { contester: contester } %> + <%= render partial: "lineup", locals: { contester: contester } %> <% end %> - <% end %> -
- -
- <%= form_for @match do |f| %> - <%= f.error_messages %> - -
- <%= f.submit 'Save Lineup' %> -
- +
+ +
<% [@match.contester2].each do |contester| %> - <%= render partial: "lineup", locals: { contester: contester } %> + <%= render partial: "lineup", locals: { contester: contester } %> <% end %> - <% end %> -
+
+ +
+ <%= f.submit 'Save Lineups' %> +
+ <% end %>
@@ -83,7 +75,7 @@
- <%= f.submit 'Save Scores' %> + <%= f.submit 'Save Scoring' %>
<% end %> diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb old mode 100644 new mode 100755 index eb99448..0a62dd4 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -117,9 +117,9 @@ <% end %> - <% if cuser and @match.can_update? cuser, referee_id: cuser.id %> + <% if cuser and @match.can_update? cuser, [:report] %>
- <%= link_to "Referee Admin", { controller: :matches, action: 'ref', id: @match }, class: 'button' %> + <%= link_to "Referee Admin", match_ref_path(@match), class: 'button' %>
<% end %> diff --git a/config/routes.rb b/config/routes.rb old mode 100644 new mode 100755 index 1442471..80f0f11 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ -Ensl::Application.routes.draw do +Ensl::Application.routes.draw do %w(403 404 422 500).each do |code| - get code, to: 'errors#show', code: code + get code, to: "errors#show", code: code end namespace :api do @@ -17,12 +17,12 @@ Ensl::Application.routes.draw do resources :versions end - match 'contests/del_map' - match 'contests/scores' - match 'contests/historical', to: "contests#historical" + match "contests/del_map" + match "contests/scores" + match "contests/historical", to: "contests#historical" resources :contests do - get 'current', on: :collection + get "current", on: :collection end resources :log_events @@ -30,7 +30,7 @@ Ensl::Application.routes.draw do resources :options resources :polls - match 'comments/quote' + match "comments/quote" resources :comments resources :shoutmsgs @@ -43,8 +43,8 @@ Ensl::Application.routes.draw do resources :forumers resources :topics - match 'forums/up' - match 'forums/down' + match "forums/up" + match "forums/down" resources :forums resources :users @@ -55,9 +55,10 @@ Ensl::Application.routes.draw do resources :servers resources :predictions resources :rounds - resources :matches do |m| + + get "matches/ref/:id" => "matches#ref", as: :match_ref + resources :matches do get :admin, to: "matches#admin", on: :collection - get :ref, to: "matches#ref" end resources :maps @@ -73,66 +74,66 @@ Ensl::Application.routes.draw do resources :bans resources :tweets resources :issues - - match 'posts/quote' + + match "posts/quote" resources :posts resources :brackets - match 'about/action' - match 'about/staff' - match 'about/statistics' + match "about/action" + match "about/staff" + match "about/statistics" - match 'refresh', to: "application#refresh" - match 'search', to: "application#search" + match "refresh", to: "application#refresh" + match "search", to: "application#search" - match 'news', to: "articles#news_index" - match 'news/archive', to: "articles#news_archive" - match 'news/admin', to: "articles#admin" - match 'articles/cleanup' + match "news", to: "articles#news_index" + match "news/archive", to: "articles#news_archive" + match "news/admin", to: "articles#admin" + match "articles/cleanup" - match 'data_files/admin' - match 'data_files/addFile' - match 'data_files/delFile' - match 'data_files/trash' + match "data_files/admin" + match "data_files/addFile" + match "data_files/delFile" + match "data_files/trash" - match 'contesters/recalc' + match "contesters/recalc" - match 'directories', to: "directories#show", id: 1 + match "directories", to: "directories#show", id: 1 - match 'gathers/refresh' - match 'gathers/latest/:game', to: "gathers#latest", via: :get - match 'gather', to: "gathers#latest", game: "ns2", via: :get + match "gathers/refresh" + match "gathers/latest/:game", to: "gathers#latest", via: :get + match "gather", to: "gathers#latest", game: "ns2", via: :get - match 'gatherers/:id/status', to: "gatherers#status", via: :post + match "gatherers/:id/status", to: "gatherers#status", via: :post - match 'groups/addUser' - match 'groups/delUser' + match "groups/addUser" + match "groups/delUser" - match 'movies/download' - match 'movies/preview' - match 'movies/snapshot' + match "movies/download" + match "movies/preview" + match "movies/snapshot" - match 'plugin/user' + match "plugin/user" - match 'users/forgot' - match 'users/recover' - match 'users/agenda' - match 'users/logout' - match 'users/login' + match "users/forgot" + match "users/recover" + match "users/agenda" + match "users/logout" + match "users/login" - match 'users/agenda' - match 'users/login' - match 'users/logout' - match 'users/popup' - match 'users/forgot', to: "users#forgot" + match "users/agenda" + match "users/login" + match "users/logout" + match "users/popup" + match "users/forgot", to: "users#forgot" - match 'votes/create' + match "votes/create" - match ':controller/:action', requirements: { action: /A-Za-z/ } - match ':controller/:action/:id' - match ':controller/:action/:id.:format' - match ':controller/:action/:id/:id2' + match ":controller/:action", requirements: { action: /A-Za-z/ } + match ":controller/:action/:id" + match ":controller/:action/:id.:format" + match ":controller/:action/:id/:id2" - match 'teamers/replace', to: 'teamers#replace', as: 'teamers_replace' + match "teamers/replace", to: "teamers#replace", as: "teamers_replace" end diff --git a/config/styles/ruby.yml b/config/styles/ruby.yml index c97ef12..6e9d1ee 100755 --- a/config/styles/ruby.yml +++ b/config/styles/ruby.yml @@ -13,6 +13,14 @@ Style/CollectionMethods: find: detect find_all: select reduce: inject +Style/DotPosition: + Description: Checks the position of the dot in multi-line method calls. + StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains + Enabled: true + EnforcedStyle: leading + SupportedStyles: + - leading + - trailing Style/FileName: Description: Use snake_case for source file names. StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files @@ -27,7 +35,7 @@ Style/IfUnlessModifier: Description: Favor modifier if/unless usage when you have a single-line body. StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier Enabled: false - MaxLineLength: 80 + MaxLineLength: 100 Style/OptionHash: Description: Don't use option hashes when you can use keyword arguments. Enabled: false @@ -223,14 +231,11 @@ Lint/LiteralInCondition: Lint/LiteralInInterpolation: Description: Checks for literals used in interpolation. Enabled: false - Metrics/LineLength: Description: Limit lines to 100 characters. - StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits Enabled: true Max: 100 AllowURI: true URISchemes: - http - https - \ No newline at end of file diff --git a/lib/verification.rb b/lib/verification.rb index ebab58c..f307ea4 100755 --- a/lib/verification.rb +++ b/lib/verification.rb @@ -54,8 +54,9 @@ module Verification end # TODO: rikki? - # Returns true if params (or its keys) are a subset of filter + # Returns true if params (or its keys if a hash) are a subset of filter def self.contain(params, filter) - ((params.instance_of?(Array) ? params : params.keys) - filter).empty? + keys = (params.instance_of?(Array) ? params : params.keys).map(&:to_sym) + (keys - filter).empty? end end diff --git a/spec/controllers/api/v1/maps_controller_spec.rb b/spec/controllers/api/v1/maps_controller_spec.rb old mode 100644 new mode 100755 index 689f7c3..523b54c --- a/spec/controllers/api/v1/maps_controller_spec.rb +++ b/spec/controllers/api/v1/maps_controller_spec.rb @@ -1,19 +1,19 @@ -require 'spec_helper' +require "spec_helper" describe Api::V1::MapsController do before do - request.accept = 'application/json' + request.accept = "application/json" end - describe '#index' do + describe "#index" do let!(:map) { create :map } - it 'returns a list of maps' do + it "returns a list of maps" do get :index expect(response).to be_success - expect(json['maps'].length).to eq(1) - json_map = json['maps'][0] - expect(json_map['id']).to eq(map.id) + expect(json["maps"].length).to eq(1) + json_map = json["maps"][0] + expect(json_map["id"]).to eq(map.id) end end end diff --git a/spec/controllers/api/v1/servers_controller_spec.rb b/spec/controllers/api/v1/servers_controller_spec.rb old mode 100644 new mode 100755 index 1e3437f..6930853 --- a/spec/controllers/api/v1/servers_controller_spec.rb +++ b/spec/controllers/api/v1/servers_controller_spec.rb @@ -1,20 +1,20 @@ -require 'spec_helper' +require "spec_helper" describe Api::V1::ServersController do before do - request.accept = 'application/json' + request.accept = "application/json" end - describe '#index' do + describe "#index" do let!(:server) { create :server, :active } let!(:inactive_server) { create :server, :inactive } - it 'returns a list of servers' do + it "returns a list of servers" do get :index expect(response).to be_success - expect(json['servers'].length).to eq(1) - json_server = json['servers'][0] - expect(json_server['id']).to eq(server.id) + expect(json["servers"].length).to eq(1) + json_server = json["servers"][0] + expect(json_server["id"]).to eq(server.id) end end end diff --git a/spec/controllers/plugin/plugin_controller_spec.rb b/spec/controllers/plugin/plugin_controller_spec.rb old mode 100644 new mode 100755 index e9585af..42efd7a --- a/spec/controllers/plugin/plugin_controller_spec.rb +++ b/spec/controllers/plugin/plugin_controller_spec.rb @@ -1,9 +1,9 @@ -require 'spec_helper' +require "spec_helper" describe PluginController do render_views - describe '#user' do + describe "#user" do before do create :group, :donors create :group, :champions @@ -11,19 +11,19 @@ describe PluginController do let!(:user) { create :user_with_team } - it 'returns user data' do + it "returns user data" do get :user, id: user.steamid expect(response).to be_success expect(response.body).to include(user.username) end - it 'definitely does not return IP address' do - last_ip = '127.0.0.1' + it "definitely does not return IP address" do + last_ip = "127.0.0.1" user.lastip = last_ip user.save! get :user, id: user.steamid expect(response).to be_success - expect(response).to_not include(last_ip) + expect(response).to_not include(last_ip) end end -end \ No newline at end of file +end diff --git a/spec/factories/article.rb b/spec/factories/article.rb old mode 100644 new mode 100755 index 8e03ad7..b937dac --- a/spec/factories/article.rb +++ b/spec/factories/article.rb @@ -1,6 +1,6 @@ FactoryGirl.define do factory :article do sequence(:title) { |n| "Article #{n}" } - sequence(:text) { |n| (0..100).map{ (0...8).map { (65 + rand(26)).chr }.join }.join(" ") } + sequence(:text) { (0..100).map { (0...8).map { (65 + rand(26)).chr }.join }.join(" ") } end -end \ No newline at end of file +end diff --git a/spec/factories/ban.rb b/spec/factories/ban.rb old mode 100644 new mode 100755 index 0f998be..d477915 --- a/spec/factories/ban.rb +++ b/spec/factories/ban.rb @@ -1,13 +1,13 @@ FactoryGirl.define do factory :ban do ban_type Ban::TYPE_SITE - expiry Date.today + 1 + expiry Time.now.utc.to_date + 1 # Hack because of the awkward way bans are created (requires user_name) before(:create) do |ban| if ban.user.nil? user = create :user ban.user_name = user.username - else + else ban.user_name = ban.user.username end end @@ -28,4 +28,4 @@ FactoryGirl.define do trait :expired do expiry Date.yesterday - 1 end -end \ No newline at end of file +end diff --git a/spec/factories/category.rb b/spec/factories/category.rb old mode 100644 new mode 100755 index 14dd5ef..f94392d --- a/spec/factories/category.rb +++ b/spec/factories/category.rb @@ -5,10 +5,10 @@ FactoryGirl.define do end trait :news do - domain Category::DOMAIN_NEWS + domain Category::DOMAIN_NEWS end trait :game do - domain Category::DOMAIN_GAMES + domain Category::DOMAIN_GAMES end -end \ No newline at end of file +end diff --git a/spec/factories/contest.rb b/spec/factories/contest.rb new file mode 100755 index 0000000..98695b2 --- /dev/null +++ b/spec/factories/contest.rb @@ -0,0 +1,10 @@ +FactoryGirl.define do + factory :contest do + sequence(:name) { |n| "Contest ##{n}" } + + start Date.yesterday + self.end Date.tomorrow + status Contest::STATUS_PROGRESS + default_time "12:00:00" + end +end diff --git a/spec/factories/contester.rb b/spec/factories/contester.rb new file mode 100755 index 0000000..fe87ae7 --- /dev/null +++ b/spec/factories/contester.rb @@ -0,0 +1,8 @@ +FactoryGirl.define do + factory :contester do + contest + team do + create(:user_with_team).team + end + end +end diff --git a/spec/factories/gather.rb b/spec/factories/gather.rb old mode 100644 new mode 100755 index a7b1d0a..0316a7b --- a/spec/factories/gather.rb +++ b/spec/factories/gather.rb @@ -4,10 +4,10 @@ FactoryGirl.define do end trait :running do - status Gather::STATE_RUNNING + status Gather::STATE_RUNNING end trait :picking do - status Gather::STATE_PICKING + status Gather::STATE_PICKING end end diff --git a/spec/factories/group.rb b/spec/factories/group.rb old mode 100644 new mode 100755 index 68cec21..d0f0742 --- a/spec/factories/group.rb +++ b/spec/factories/group.rb @@ -1,27 +1,39 @@ FactoryGirl.define do factory :group do - sequence(:id) { |n| n + 100 } # Preserve first 100 + sequence(:id) { |n| n + 100 } # Preserve first 100 sequence(:name) { |n| "Group#{n}" } association :founder, factory: :user + + initialize_with { Group.find_or_create_by_id(id) } end trait :admin do - name "Admins" - id Group::ADMINS + name "Admins" + id Group::ADMINS + end + + trait :caster do + name "Shoutcasters" + id Group::CASTERS end trait :champions do - name "Champions" - id Group::CHAMPIONS + name "Champions" + id Group::CHAMPIONS end trait :donors do - name "Donors" - id Group::DONORS + name "Donors" + id Group::DONORS end trait :gather_moderator do name "Gather Moderator" id Group::GATHER_MODERATORS end + + trait :ref do + name "Referees" + id Group::REFEREES + end end diff --git a/spec/factories/grouper.rb b/spec/factories/grouper.rb old mode 100644 new mode 100755 index 54c492b..3e172bb --- a/spec/factories/grouper.rb +++ b/spec/factories/grouper.rb @@ -1,5 +1,5 @@ FactoryGirl.define do - factory :grouper do - sequence(:task) { |n| "Task#{n}" } - end -end \ No newline at end of file + factory :grouper do + sequence(:task) { |n| "Task#{n}" } + end +end diff --git a/spec/factories/issue.rb b/spec/factories/issue.rb old mode 100644 new mode 100755 index f7a9d4d..3f51961 --- a/spec/factories/issue.rb +++ b/spec/factories/issue.rb @@ -1,8 +1,8 @@ FactoryGirl.define do - factory :issue do - sequence(:title) { |n| "Issue title #{n}" } - sequence(:text) { |n| "Issue Text #{n}" } - status Issue::STATUS_OPEN - association :author, factory: :user - end -end \ No newline at end of file + factory :issue do + sequence(:title) { |n| "Issue title #{n}" } + sequence(:text) { |n| "Issue Text #{n}" } + status Issue::STATUS_OPEN + association :author, factory: :user + end +end diff --git a/spec/factories/match.rb b/spec/factories/match.rb new file mode 100755 index 0000000..be17db9 --- /dev/null +++ b/spec/factories/match.rb @@ -0,0 +1,13 @@ +FactoryGirl.define do + factory :match do + contest + contester1 do + create(:contester, contest: contest) + end + contester2 do + create(:contester, contest: contest) + end + + match_time 1.hour.from_now + end +end diff --git a/spec/factories/message.rb b/spec/factories/message.rb old mode 100644 new mode 100755 index 1f44662..bb88f6f --- a/spec/factories/message.rb +++ b/spec/factories/message.rb @@ -1,9 +1,9 @@ FactoryGirl.define do - factory :message do - association :sender, factory: :user - association :recipient, factory: :user - sequence(:text) { |n| "text-#{n}" } - sequence(:title) { |n| "title-#{n}" } - sequence(:text_parsed) { |n| "text-#{n}" } - end -end \ No newline at end of file + factory :message do + association :sender, factory: :user + association :recipient, factory: :user + sequence(:text) { |n| "text-#{n}" } + sequence(:title) { |n| "title-#{n}" } + sequence(:text_parsed) { |n| "text-#{n}" } + end +end diff --git a/spec/factories/server.rb b/spec/factories/server.rb old mode 100644 new mode 100755 index e5cb877..81440a7 --- a/spec/factories/server.rb +++ b/spec/factories/server.rb @@ -13,4 +13,4 @@ FactoryGirl.define do active false end end -end \ No newline at end of file +end diff --git a/spec/factories/team.rb b/spec/factories/team.rb old mode 100644 new mode 100755 index 1a3902b..7a23a48 --- a/spec/factories/team.rb +++ b/spec/factories/team.rb @@ -1,11 +1,11 @@ FactoryGirl.define do factory :team do sequence(:name) { |n| "Team ##{n}" } - + irc "#team" web "http://team.com" tag "[TEAM]" country "EU" comment "We are a team" end -end \ No newline at end of file +end diff --git a/spec/factories/user.rb b/spec/factories/user.rb old mode 100644 new mode 100755 index 74942ac..2cf98a7 --- a/spec/factories/user.rb +++ b/spec/factories/user.rb @@ -20,6 +20,20 @@ FactoryGirl.define do end end + trait :caster do + after(:create) do |user| + group = create(:group, :caster) + create :grouper, user: user, group: group + end + end + + trait :ref do + after(:create) do |user| + group = create(:group, :ref) + create :grouper, user: user, group: group + end + end + trait :chris do steamid "0:1:58097444" end diff --git a/spec/features/shoutbox/shoutbox_spec.rb b/spec/features/shoutbox/shoutbox_spec.rb old mode 100644 new mode 100755 index 5a40b6e..662bbc2 --- a/spec/features/shoutbox/shoutbox_spec.rb +++ b/spec/features/shoutbox/shoutbox_spec.rb @@ -1,34 +1,34 @@ -require 'spec_helper' +require "spec_helper" -feature 'Shoutbox', js: true do - let!(:user) { create :user } +feature "Shoutbox", js: true do + let!(:user) { create :user } - background do - sign_in_as user - end + background do + sign_in_as user + end - scenario 'creating a valid shout' do - visit root_path - shout = rand(100000).to_s - fill_in 'shoutbox_text', with: shout - click_button 'Shout!' - expect(page).to have_content(shout) - end + scenario "creating a valid shout" do + visit root_path + shout = rand(100_000).to_s + fill_in "shoutbox_text", with: shout + click_button "Shout!" + expect(page).to have_content(shout) + end - scenario 'enter more than 100 characters' do - valid_shout = 100.times.map { "a" }.join - invalid_shout = 101.times.map { "a" }.join - visit root_path - expect(page).to_not have_content("Maximum shout length exceeded") - fill_in 'shoutbox_text', with: invalid_shout - expect(page).to have_content("Maximum shout length exceeded") - fill_in 'shoutbox_text', with: valid_shout - expect(page).to_not have_content("Maximum shout length exceeded") - end + scenario "enter more than 100 characters" do + valid_shout = 100.times.map { "a" }.join + invalid_shout = 101.times.map { "a" }.join + visit root_path + expect(page).to_not have_content("Maximum shout length exceeded") + fill_in "shoutbox_text", with: invalid_shout + expect(page).to have_content("Maximum shout length exceeded") + fill_in "shoutbox_text", with: valid_shout + expect(page).to_not have_content("Maximum shout length exceeded") + end - scenario 'creating shout while banned' do - Ban.create! ban_type: Ban::TYPE_MUTE, expiry: Time.now + 10.days, user_name: user.username - visit root_path - expect(find("#sidebar")).to have_content "You have been muted." - end -end \ No newline at end of file + scenario "creating shout while banned" do + Ban.create! ban_type: Ban::TYPE_MUTE, expiry: Time.now.utc + 10.days, user_name: user.username + visit root_path + expect(find("#sidebar")).to have_content "You have been muted." + end +end diff --git a/spec/features/users/case_insensitive_login_spec.rb b/spec/features/users/case_insensitive_login_spec.rb old mode 100644 new mode 100755 index e9c9ea1..dbbd62a --- a/spec/features/users/case_insensitive_login_spec.rb +++ b/spec/features/users/case_insensitive_login_spec.rb @@ -1,6 +1,6 @@ -require 'spec_helper' +require "spec_helper" -feature 'Case insensitive login', js: :true do +feature "Case insensitive login", js: :true do let(:username) { "CaSe_InSeNsItIvE" } let(:password) { "passwordABC123" } let!(:user) { create(:user, username: username, raw_password: password) } @@ -9,23 +9,23 @@ feature 'Case insensitive login', js: :true do visit root_path end - feature 'when a user with mixed-case username signs in' do - scenario 'with a matching case allows the user to sign in' do + feature "when a user with mixed-case username signs in" do + scenario "with a matching case allows the user to sign in" do fill_login_form(username) click_button submit(:user, :login) - - expect(page).to have_content(I18n.t('login_successful')) - + + expect(page).to have_content(I18n.t("login_successful")) + within user_status do expect(page).to have_content(account_link) end end - scenario 'with a non-matching case allows the user to sign in' do + scenario "with a non-matching case allows the user to sign in" do fill_login_form("CASE_INSENSITIVE") click_button submit(:user, :login) - - expect(page).to have_content(I18n.t('login_successful')) + + expect(page).to have_content(I18n.t("login_successful")) within user_status do expect(page).to have_content(account_link) @@ -39,6 +39,6 @@ feature 'Case insensitive login', js: :true do end def account_link - 'ACCOUNT' + "ACCOUNT" end end diff --git a/spec/features/users/user_signs_up_spec.rb b/spec/features/users/user_signs_up_spec.rb index 2d5b2e7..ca80ec7 100755 --- a/spec/features/users/user_signs_up_spec.rb +++ b/spec/features/users/user_signs_up_spec.rb @@ -12,7 +12,7 @@ feature "Visitor signs up", js: :true do fill_form(:user, user.slice(*sign_up_attributes)) click_button submit(:user, :create) end - + expect(user_status).to have_content("ACCOUNT") end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb old mode 100644 new mode 100755 index 0258344..b67632e --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -22,7 +22,7 @@ # salt :string(255) # -require 'spec_helper' +require "spec_helper" describe User do let!(:user) { create :user } @@ -34,7 +34,7 @@ describe User do it "returns true if user is banned" do Ban.create!(ban_type: Ban::TYPE_SITE, - expiry: Time.now + 10.days, + expiry: Time.now.utc + 10.days, user_name: user.username) expect(user.banned?).to be_truthy @@ -42,7 +42,7 @@ describe User do it "returns true for specific bans" do Ban.create!(ban_type: Ban::TYPE_MUTE, - expiry: Time.now + 10.days, + expiry: Time.now.utc + 10.days, user_name: user.username) expect(user.banned? Ban::TYPE_MUTE).to be_truthy diff --git a/spec/services/api/v1/users_collection_spec.rb b/spec/services/api/v1/users_collection_spec.rb old mode 100644 new mode 100755 index 66437e9..f2b0fbc --- a/spec/services/api/v1/users_collection_spec.rb +++ b/spec/services/api/v1/users_collection_spec.rb @@ -28,4 +28,4 @@ describe Api::V1::UsersCollection do end end end -end \ No newline at end of file +end diff --git a/spec/support/features/form_helpers.rb b/spec/support/features/form_helpers.rb old mode 100644 new mode 100755 index 390b409..671bbad --- a/spec/support/features/form_helpers.rb +++ b/spec/support/features/form_helpers.rb @@ -2,7 +2,7 @@ module Features module FormHelpers def fill_form(model, hash) hash.each do |attribute, value| - fill_in attribute_translation(model, attribute), :with => value + fill_in attribute_translation(model, attribute), with: value end end diff --git a/spec/support/features/server_helpers.rb b/spec/support/features/server_helpers.rb old mode 100644 new mode 100755 index 446f34c..e4b67a1 --- a/spec/support/features/server_helpers.rb +++ b/spec/support/features/server_helpers.rb @@ -1,24 +1,24 @@ module Features module ServerHelpers def test_server_creation_and_editing - dns = 'ServerDns.com' - ip = '192.168.1.1' - port = '8000' - password = 'secret' - name = 'MyNsServer' - description = 'My NS Server' - irc = '#some_channel' + dns = "ServerDns.com" + ip = "192.168.1.1" + port = "8000" + password = "secret" + name = "MyNsServer" + description = "My NS Server" + irc = "#some_channel" visit new_server_path - fill_in 'Dns', with: dns - fill_in 'server_ip', with: ip - fill_in 'server_port', with: port - fill_in 'Password', with: password - fill_in 'Name', with: name - fill_in 'Description', with: description - fill_in 'Irc', with: irc - check 'Available for officials?' - click_button 'Save' + fill_in "Dns", with: dns + fill_in "server_ip", with: ip + fill_in "server_port", with: port + fill_in "Password", with: password + fill_in "Name", with: name + fill_in "Description", with: description + fill_in "Irc", with: irc + check "Available for officials?" + click_button "Save" expect(page).to have_content(dns) expect(page).to have_content("#{ip}:#{port}") @@ -26,17 +26,17 @@ module Features expect(page).to have_content(irc) expect(page).to have_content(description) - click_link 'Edit Server' + click_link "Edit Server" - fill_in 'Dns', with: "#{dns}2" - fill_in 'server_ip', with: "192.168.1.2" - fill_in 'server_port', with: "8001" - fill_in 'Password', with: "#{password}2" - fill_in 'Name', with: "#{name}2" - fill_in 'Description', with: "#{description}2" - fill_in 'Irc', with: "#{irc}2" - check 'Available for officials?' - click_button 'Save' + fill_in "Dns", with: "#{dns}2" + fill_in "server_ip", with: "192.168.1.2" + fill_in "server_port", with: "8001" + fill_in "Password", with: "#{password}2" + fill_in "Name", with: "#{name}2" + fill_in "Description", with: "#{description}2" + fill_in "Irc", with: "#{irc}2" + check "Available for officials?" + click_button "Save" expect(page).to have_content("192.168.1.2:8001") expect(page).to have_content("#{dns}2") @@ -45,4 +45,4 @@ module Features expect(page).to have_content("#{description}2") end end -end \ No newline at end of file +end diff --git a/spec/support/features/session_helpers.rb b/spec/support/features/session_helpers.rb old mode 100644 new mode 100755 index 64a44aa..f7188d7 --- a/spec/support/features/session_helpers.rb +++ b/spec/support/features/session_helpers.rb @@ -1,21 +1,21 @@ module Features module SessionHelpers - def sign_in_as(user) + def sign_in_as(user) visit root_path fill_in "login_username", with: user.username fill_in "login_password", with: user.raw_password - click_button I18n.t('helpers.submit.user.login') + click_button I18n.t("helpers.submit.user.login") end def change_timezone_for(user, timezone) visit edit_user_path(user.id) - click_link I18n.t('profile.locals') + click_link I18n.t("profile.locals") find("option[value='#{timezone}']").select_option - - click_button I18n.t('helpers.submit.user.update') + + click_button I18n.t("helpers.submit.user.update") end def user_status @@ -26,4 +26,4 @@ module Features find "#new_user" end end -end \ No newline at end of file +end