导航栏防止意外http参数不全的错误

This commit is contained in:
yanxd 2014-02-17 15:37:04 +08:00
parent fd426936bb
commit 02a03f7c54
20 changed files with 192 additions and 10 deletions

2
.gitignore vendored
View File

@ -4,10 +4,8 @@
/config/database.yml
/files/*
/log/*
/test/*
/tmp/*
.gitignore
/config/database.yml
/public/images/avatars/*
/Gemfile
/Gemfile.lock

View File

@ -166,6 +166,14 @@ class UsersController < ApplicationController
end
def user_courses
unless User.current.admin?
if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)
render_404
return
end
end
membership = @user.memberships.all(:conditions => Project.visible_condition(User.current))
membership.sort! {|older, newer| newer.created_on <=> older.created_on }
@memberships = []
@ -184,14 +192,6 @@ class UsersController < ApplicationController
@memberships_done.push e
end
}
unless User.current.admin?
if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)
render_404
return
end
end
# respond_to do |format|
# format.html
# format.api

View File

@ -1,4 +1,5 @@
<%
request.headers['REQUEST_URI'] = "" if request.headers['REQUEST_URI'].nil?
if (request.headers['REQUEST_URI'].match(/course/))
@nav_dispaly_course_label = 1
elsif (request.headers['REQUEST_URI'].match(/projects/))

0
test/fixtures/.gitkeep vendored Normal file
View File

23
test/fixtures/memos.yml vendored Normal file
View File

@ -0,0 +1,23 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
one:
parent_id: 1
forum_id: 1
subject: MyString
content: MyText
author_id: 1
replies_count: 1
last_reply_id: 1
lock: false
sticky: false
two:
parent_id: 1
forum_id: 1
subject: MyString
content: MyText
author_id: 1
replies_count: 1
last_reply_id: 1
lock: false
sticky: false

20
test/fixtures/user_extensions.yml vendored Normal file
View File

@ -0,0 +1,20 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
person_one_extra:
id: 44
user_id: 29
birthday: "2013-09-30 21:19:25"
brief_introduction: nil
gender: 1
location: "江苏"
occupation: ""
work_experience: nil
zip_code: nil
created_at: "2013-09-30 21:19:25"
updated_at: "2013-10-09 19:00:06"
technical_title: nil
identity: 2
student_id: nil
teacher_realname: nil
student_realname: nil
location_city: "南京"

20
test/fixtures/users.yml vendored Normal file
View File

@ -0,0 +1,20 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
person_one:
id: 29
login: "yanxd"
hashed_password: "432257ccaebe6b33158a88b2db2135796505762b"
firstname: "Inc."
lastname: "yan"
mail: "test@hotmail.com"
admin: 0
status: 1
last_login_on: "2014-02-17 08:27:52"
language: "zh"
auth_source_id: nil
created_on: "2013-07-11 08:33:38"
updated_on: "2013-10-25 09:37:40"
type: "User"
identity_url: nil
mail_notification: "only_my_events"
salt: "84dc6508506671255b120d28e348f3ad"

0
test/functional/.gitkeep Normal file
View File

View File

@ -0,0 +1,11 @@
require 'test_helper'
class MemosControllerTest < ActionController::TestCase
# test "the truth" do
# assert true
# end
def test_memo_create_fail
memo = Memo.create(:subject => nil)
assert true
end
end

View File

@ -0,0 +1,13 @@
require 'test_helper'
class TestControllerTest < ActionController::TestCase
# test "the truth" do
# assert true
# end
test "get test index error" do
@request.env["REQUEST_URI"] = ""
get :index
assert_template :index
# assert_template layout: "layouts/base", partial: ["layouts/base_header","_base_header", 'layouts/base_footer', "_base_footer",]
end
end

View File

@ -0,0 +1,31 @@
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
def setup
initial_user_controller
end
def teardown
teardown_user_controller
end
test "test user valid" do
assert @user.valid?, "user valid."
end
test "get user_courses page" do
get :user_courses, {:id => @user.id}
assert_response :success
end
private
def initial_user_controller
@user = users(:person_one)
# @user_extra = user_extensions(:person_one_extra)
end
def teardown_user_controller
@user = nil
# @user_extra = nil
end
end

View File

View File

@ -0,0 +1,12 @@
require 'test_helper'
require 'rails/performance_test_help'
class BrowsingTest < ActionDispatch::PerformanceTest
# Refer to the documentation for all available options
# self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory]
# :output => 'tmp/performance', :formats => [:flat] }
def test_homepage
get '/'
end
end

13
test/test_helper.rb Normal file
View File

@ -0,0 +1,13 @@
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
#
# Note: You'll currently still have to declare fixtures explicitly in integration tests
# -- they do not yet inherit this setting
fixtures :all
# Add more helper methods to be used by all tests here...
end

0
test/unit/.gitkeep Normal file
View File

View File

@ -0,0 +1,12 @@
require File.expand_path('../../../test_helper', __FILE__)
class CoursesHelperTest < ActionView::TestCase
include CoursesHelper
# test "test truth" do
# @project = Project.find_by_id 6834
# teacherNum = teacherCount @project
# studentNum = studentCount @project
# assert_equal 1, teacherNum
# assert_equal 5, studentNum
# end
end

View File

@ -0,0 +1,4 @@
require 'test_helper'
class MemosHelperTest < ActionView::TestCase
end

View File

@ -0,0 +1,4 @@
require 'test_helper'
class StoresHelperTest < ActionView::TestCase
end

View File

@ -0,0 +1,4 @@
require 'test_helper'
class TestHelperTest < ActionView::TestCase
end

16
test/unit/memo_test.rb Normal file
View File

@ -0,0 +1,16 @@
require 'test_helper'
class MemoTest < ActiveSupport::TestCase
test "the truth" do
assert true
end
def test_the_truth
assert true
end
test "should not save memo without content" do
memo = Memo.new
assert !memo.save, "assert, save memo without content."
end
end