Browse Source

整理测试代码

pull/317/head
qyzh 4 years ago
parent
commit
859566e4be
100 changed files with 121952 additions and 802 deletions
  1. +1
    -0
      Gemfile
  2. +8
    -0
      Gemfile.lock
  3. +11
    -4
      app/controllers/users_controller.rb
  4. +1
    -1
      app/models/ci/user.rb
  5. +1
    -1
      app/models/organization.rb
  6. +1
    -1
      app/models/user.rb
  7. +1
    -1
      app/views/users/get_user_info.json.jbuilder
  8. +2
    -1
      app/views/users/show.json.jbuilder
  9. +1
    -1
      config/routes.rb
  10. +5
    -0
      coverage/.last_run.json
  11. +15661
    -0
      coverage/.resultset.json
  12. +0
    -0
      coverage/.resultset.json.lock
  13. +799
    -0
      coverage/assets/0.10.2/application.css
  14. +1707
    -0
      coverage/assets/0.10.2/application.js
  15. BIN
      coverage/assets/0.10.2/colorbox/border.png
  16. BIN
      coverage/assets/0.10.2/colorbox/controls.png
  17. BIN
      coverage/assets/0.10.2/colorbox/loading.gif
  18. BIN
      coverage/assets/0.10.2/colorbox/loading_background.png
  19. BIN
      coverage/assets/0.10.2/favicon_green.png
  20. BIN
      coverage/assets/0.10.2/favicon_red.png
  21. BIN
      coverage/assets/0.10.2/favicon_yellow.png
  22. BIN
      coverage/assets/0.10.2/loading.gif
  23. BIN
      coverage/assets/0.10.2/magnify.png
  24. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
  25. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
  26. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
  27. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
  28. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png
  29. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
  30. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
  31. BIN
      coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
  32. BIN
      coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png
  33. BIN
      coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png
  34. BIN
      coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png
  35. BIN
      coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png
  36. BIN
      coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png
  37. +100184
    -0
      coverage/index.html
  38. +5
    -0
      db/migrate/20211012064053_change_user_description_to_sponsor_description.rb
  39. +3431
    -0
      out.txt
  40. +0
    -5
      spec/controllers/admin_controller_spec.rb
  41. +0
    -47
      spec/controllers/admins/edu_settings_controller_spec.rb
  42. +0
    -5
      spec/controllers/blob_controller_spec.rb
  43. +0
    -5
      spec/controllers/boards_controller_spec.rb
  44. +0
    -5
      spec/controllers/comments_controller_spec.rb
  45. +0
    -5
      spec/controllers/course_groups_controller_spec.rb
  46. +0
    -5
      spec/controllers/course_modules_controller_spec.rb
  47. +0
    -5
      spec/controllers/course_second_categories_controller_spec.rb
  48. +0
    -5
      spec/controllers/course_stages_controller_spec.rb
  49. +0
    -141
      spec/controllers/courses_controller_spec.rb
  50. +0
    -5
      spec/controllers/edu_datas_controller_spec.rb
  51. +0
    -5
      spec/controllers/graduation_tasks_controller_spec.rb
  52. +0
    -5
      spec/controllers/graduation_topics_controller_spec.rb
  53. +0
    -5
      spec/controllers/graduation_works_controller_spec.rb
  54. +0
    -5
      spec/controllers/hack_user_lastest_codes_controller_spec.rb
  55. +0
    -5
      spec/controllers/hacks_controller_spec.rb
  56. +0
    -12
      spec/controllers/home_controller_spec.rb
  57. +0
    -5
      spec/controllers/homework_banks_controller_spec.rb
  58. +0
    -5
      spec/controllers/homework_commons_controller_spec.rb
  59. +0
    -141
      spec/controllers/memos_controller_spec.rb
  60. +0
    -26
      spec/controllers/messages_controller_spec.rb
  61. +0
    -40
      spec/controllers/protected_branches_controller_spec.rb
  62. +0
    -5
      spec/controllers/question_banks_controller_spec.rb
  63. +0
    -5
      spec/controllers/schools_controller_spec.rb
  64. +90
    -27
      spec/controllers/sponsorships_controller_spec.rb
  65. +0
    -5
      spec/controllers/stages_controller_spec.rb
  66. +0
    -5
      spec/controllers/student_works_controller_spec.rb
  67. +0
    -5
      spec/controllers/subject_lists_controller_spec.rb
  68. +0
    -5
      spec/controllers/trustie_hacks_controller_spec.rb
  69. +43
    -3
      spec/controllers/wallets_controller_spec.rb
  70. +0
    -15
      spec/helpers/exercise_questions_helper_spec.rb
  71. +0
    -15
      spec/helpers/export_helper_spec.rb
  72. +0
    -15
      spec/helpers/homework_banks_helper_spec.rb
  73. +0
    -15
      spec/helpers/homework_commons_helper_spec.rb
  74. +0
    -15
      spec/helpers/polls_helper_spec.rb
  75. +0
    -15
      spec/helpers/question_banks_helper_spec.rb
  76. +0
    -15
      spec/helpers/schools_helper_spec.rb
  77. +0
    -15
      spec/helpers/student_works_helper_spec.rb
  78. +0
    -15
      spec/helpers/subject_lists_helper_spec.rb
  79. +0
    -5
      spec/jobs/create_student_work_job_spec.rb
  80. +0
    -5
      spec/jobs/create_subject_course_student_job_spec.rb
  81. +0
    -5
      spec/jobs/homework_absence_penalty_calculation_job_spec.rb
  82. +0
    -5
      spec/jobs/homework_anonymous_appeal_start_notify_job_spec.rb
  83. +0
    -5
      spec/jobs/homework_batch_comment_job_spec.rb
  84. +0
    -5
      spec/jobs/homework_end_update_score_job_spec.rb
  85. +0
    -5
      spec/jobs/homework_evaluation_comment_assgin_job_spec.rb
  86. +0
    -5
      spec/jobs/homework_evaluation_start_notify_job_spec.rb
  87. +0
    -5
      spec/jobs/homework_publish_update_work_status_job_spec.rb
  88. +0
    -5
      spec/jobs/live_publish_job_spec.rb
  89. +0
    -5
      spec/models/board_spec.rb
  90. +0
    -5
      spec/models/career_spec.rb
  91. +0
    -5
      spec/models/challenge_answer_spec.rb
  92. +0
    -5
      spec/models/challenge_sample_spec.rb
  93. +0
    -5
      spec/models/challenge_work_score_spec.rb
  94. +0
    -5
      spec/models/competition_award_spec.rb
  95. +0
    -5
      spec/models/competition_course_course_record_spec.rb
  96. +0
    -5
      spec/models/competition_course_record_spec.rb
  97. +0
    -5
      spec/models/competition_course_shixun_record_spec.rb
  98. +0
    -5
      spec/models/competition_mode_setting_spec.rb
  99. +0
    -5
      spec/models/competition_school_spec.rb
  100. +0
    -5
      spec/models/competition_score_spec.rb

+ 1
- 0
Gemfile View File

@@ -77,6 +77,7 @@ group :test do
gem 'capybara', '>= 2.15', '< 4.0' gem 'capybara', '>= 2.15', '< 4.0'
gem 'selenium-webdriver' gem 'selenium-webdriver'
gem 'chromedriver-helper' gem 'chromedriver-helper'
gem 'simplecov', '~>0.12.0', require: false
end end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]


+ 8
- 0
Gemfile.lock View File

@@ -107,6 +107,7 @@ GEM
activerecord (>= 3.1.0, < 7) activerecord (>= 3.1.0, < 7)
diff-lcs (1.3) diff-lcs (1.3)
diffy (3.3.0) diffy (3.3.0)
docile (1.1.5)
e2mmap (0.1.0) e2mmap (0.1.0)
elasticsearch (7.5.0) elasticsearch (7.5.0)
elasticsearch-api (= 7.5.0) elasticsearch-api (= 7.5.0)
@@ -150,6 +151,7 @@ GEM
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
thor (>= 0.14, < 2.0) thor (>= 0.14, < 2.0)
json (2.6.0)
jwt (2.2.1) jwt (2.2.1)
kaminari (1.2.0) kaminari (1.2.0)
activesupport (>= 4.1.0) activesupport (>= 4.1.0)
@@ -374,6 +376,11 @@ GEM
simple_xlsx_reader (1.0.4) simple_xlsx_reader (1.0.4)
nokogiri nokogiri
rubyzip rubyzip
simplecov (0.12.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
sinatra (2.0.8.1) sinatra (2.0.8.1)
mustermann (~> 1.0) mustermann (~> 1.0)
rack (~> 2.0) rack (~> 2.0)
@@ -499,6 +506,7 @@ DEPENDENCIES
sidekiq-cron (~> 1.1) sidekiq-cron (~> 1.1)
simple_form simple_form
simple_xlsx_reader simple_xlsx_reader
simplecov (~> 0.12.0)
sinatra sinatra
solargraph (~> 0.38.0) solargraph (~> 0.38.0)
spreadsheet spreadsheet


+ 11
- 4
app/controllers/users_controller.rb View File

@@ -264,10 +264,17 @@ class UsersController < ApplicationController
render_ok render_ok
end end
def update_description
def update_sponsor_description
@user = User.find params[:id] @user = User.find params[:id]
if @user.id == User.current.id && @user.update(description: params[:description])
render_ok
if @user.id == User.current.id
# @user.update(description: params[:description])
@user.sponsor_description = params[:sponsor_description]
puts "$$$$$$$$$$$$$$$$$$$$$=", @user.sponsor_description
if @user.save!
render_ok
else
render_error
end
else else
render_error render_error
end end
@@ -304,7 +311,7 @@ class UsersController < ApplicationController
:gender, :location, :location_city, :gender, :location, :location_city,
:occupation, :technical_title, :occupation, :technical_title,
:school_id, :department_id, :province, :city, :school_id, :department_id, :province, :city,
:custom_department, :identity, :student_id, :description,
:custom_department, :identity, :student_id, :description, :sponsor_description,
:show_email, :show_location, :show_department] :show_email, :show_location, :show_department]
) )
end end


+ 1
- 1
app/models/ci/user.rb View File

@@ -48,7 +48,7 @@
# sponsor_certification :integer default("0") # sponsor_certification :integer default("0")
# sponsor_num :integer default("0") # sponsor_num :integer default("0")
# sponsored_num :integer default("0") # sponsored_num :integer default("0")
# description :text(65535)
# sponsor_description :text(65535)
# devops_step :integer default("0") # devops_step :integer default("0")
# award_time :datetime # award_time :datetime
# #


+ 1
- 1
app/models/organization.rb View File

@@ -48,7 +48,7 @@
# sponsor_certification :integer default("0") # sponsor_certification :integer default("0")
# sponsor_num :integer default("0") # sponsor_num :integer default("0")
# sponsored_num :integer default("0") # sponsored_num :integer default("0")
# description :text(65535)
# sponsor_description :text(65535)
# devops_step :integer default("0") # devops_step :integer default("0")
# award_time :datetime # award_time :datetime
# #


+ 1
- 1
app/models/user.rb View File

@@ -48,7 +48,7 @@
# sponsor_certification :integer default("0") # sponsor_certification :integer default("0")
# sponsor_num :integer default("0") # sponsor_num :integer default("0")
# sponsored_num :integer default("0") # sponsored_num :integer default("0")
# description :text(65535)
# sponsor_description :text(65535)
# devops_step :integer default("0") # devops_step :integer default("0")
# award_time :datetime # award_time :datetime
# #


+ 1
- 1
app/views/users/get_user_info.json.jbuilder View File

@@ -15,7 +15,7 @@ json.need_edit_info @user.need_edit_info?
# json.email @user.mail # json.email @user.mail
json.profile_completed @user.profile_is_completed? json.profile_completed @user.profile_is_completed?
json.professional_certification @user.professional_certification json.professional_certification @user.professional_certification
json.description @user.description
json.sponsor_description @user.sponsor_description
json.devops_step @user.devops_step json.devops_step @user.devops_step
json.ci_certification @user.ci_certification? json.ci_certification @user.ci_certification?
json.email @user.mail json.email @user.mail


+ 2
- 1
app/views/users/show.json.jbuilder View File

@@ -13,4 +13,5 @@ json.email @user.show_email ? @user.mail : nil
json.province @user.show_location ? @user.province : nil json.province @user.show_location ? @user.province : nil
json.city @user.show_location ? @user.city : nil json.city @user.show_location ? @user.city : nil
json.custom_department @user.show_department ? @user.custom_department : nil json.custom_department @user.show_department ? @user.custom_department : nil
json.description @user.description
json.description @user.description
json.sponsor_description @user.sponsor_description

+ 1
- 1
config/routes.rb View File

@@ -226,7 +226,7 @@ Rails.application.routes.draw do
get :projects get :projects
get :watch_users get :watch_users
get :fan_users get :fan_users
put :update_description
put :update_sponsor_description
get :hovercard get :hovercard
end end
collection do collection do


+ 5
- 0
coverage/.last_run.json View File

@@ -0,0 +1,5 @@
{
"result": {
"covered_percent": 55.13
}
}

+ 15661
- 0
coverage/.resultset.json
File diff suppressed because it is too large
View File


+ 0
- 0
coverage/.resultset.json.lock View File


+ 799
- 0
coverage/assets/0.10.2/application.css View File

@@ -0,0 +1,799 @@
/* -----------------------------------------------------------------------


Blueprint CSS Framework 0.9
http://blueprintcss.org

* Copyright (c) 2007-Present. See LICENSE for more info.
* See README for instructions on how to use Blueprint.
* For credits and origins, see AUTHORS.
* This is a compressed file. See the sources in the 'src' directory.

----------------------------------------------------------------------- */

/* reset.css */

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;}
body {line-height:1.5;}
table {border-collapse:separate;border-spacing:0;}
caption, th, td {text-align:left;font-weight:normal;}
table, td, th {vertical-align:middle;}
blockquote:before, blockquote:after, q:before, q:after {content:"";}
blockquote, q {quotes:"" "";}
a img {border:none;}

/* typography.css */
html {font-size:100.01%;}
body {font-size:82%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
h2 {font-size:2em;margin-bottom:0.75em;}
h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
h6 {font-size:1em;font-weight:bold;}
h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
p {margin:0 0 1.5em;}
p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
a:focus, a:hover {color:#000;}
a {color:#009;text-decoration:underline;}
blockquote {margin:1.5em;color:#666;font-style:italic;}
strong {font-weight:bold;}
em, dfn {font-style:italic;}
dfn {font-weight:bold;}
sup, sub {line-height:0;}
abbr, acronym {border-bottom:1px dotted #666;}
address {margin:0 0 1.5em;font-style:italic;}
del {color:#666;}
pre {margin:1.5em 0;white-space:pre;}
pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
li ul, li ol {margin:0;}
ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
ul {list-style-type:disc;}
ol {list-style-type:decimal;}
dl {margin:0 0 1.5em 0;}
dl dt {font-weight:bold;}
dd {margin-left:1.5em;}
table {margin-bottom:1.4em;width:100%;}
th {font-weight:bold;}
thead th {background:#c3d9ff;}
th, td, caption {padding:4px 10px 4px 5px;}
tr.even td {background:#efefef;}
tfoot {font-style:italic;}
caption {background:#eee;}
.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
.hide {display:none;}
.quiet {color:#666;}
.loud {color:#000;}
.highlight {background:#ff0;}
.added {background:#060;color:#fff;}
.removed {background:#900;color:#fff;}
.first {margin-left:0;padding-left:0;}
.last {margin-right:0;padding-right:0;}
.top {margin-top:0;padding-top:0;}
.bottom {margin-bottom:0;padding-bottom:0;}

/* forms.css */
label {font-weight:bold;}
fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
legend {font-weight:bold;font-size:1.2em;}
input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
input.text, input.title {width:300px;padding:5px;}
input.title {font-size:1.5em;}
textarea {width:390px;height:250px;padding:5px;}
input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
form.inline {line-height:3;}
form.inline p {margin-bottom:0;}
.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
.error a {color:#8a1f11;}
.notice a {color:#514721;}
.success a {color:#264409;}
.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
hr.space {background:#fff;color:#fff;visibility:hidden;}
.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
.clearfix, .container {display:block;}
.clear {clear:both;}
/*
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/


pre code {
}

pre .comment,
pre .template_comment,
pre .diff .header,
pre .javadoc {
color: #998;
font-style: italic
}

pre .keyword,
pre .css .rule .keyword,
pre .winutils,
pre .javascript .title,
pre .lisp .title {
color: #000;
font-weight: bold
}

pre .number,
pre .hexcolor {
color: #458
}


pre .string,
pre .tag .value,
pre .phpdoc,
pre .tex .formula {
color: #d14
}

pre .subst {
color: #712;
}

pre .constant,
pre .title,
pre .id {
color: #900;
font-weight: bold
}

pre .javascript .title,
pre .lisp .title,
pre .subst {
font-weight: normal
}

pre .class .title,
pre .haskell .label,
pre .tex .command {
color: #458;
font-weight: bold
}

pre .tag,
pre .tag .title,
pre .rules .property,
pre .django .tag .keyword {
color: #000080;
font-weight: normal
}

pre .attribute,
pre .variable,
pre .instancevar,
pre .lisp .body {
color: #008080
}

pre .regexp {
color: #009926
}

pre .class {
color: #458;
font-weight: bold
}

pre .symbol,
pre .ruby .symbol .string,
pre .ruby .symbol .keyword,
pre .ruby .symbol .keymethods,
pre .lisp .keyword,
pre .tex .special,
pre .input_number {
color: #990073
}

pre .builtin,
pre .built_in,
pre .lisp .title {
color: #0086b3
}

pre .preprocessor,
pre .pi,
pre .doctype,
pre .shebang,
pre .cdata {
color: #999;
font-weight: bold
}

pre .deletion {
background: #fdd
}

pre .addition {
background: #dfd
}

pre .diff .change {
background: #0086b3
}

pre .chunk {
color: #aaa
}

pre .tex .formula {
opacity: 0.5;
}
/*
* jQuery UI CSS Framework @VERSION
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/

/* Layout helpers
----------------------------------*/

.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.ui-helper-clearfix { display: inline-block; }
/* required comment for clearfix to work in Opera \*/
* html .ui-helper-clearfix { height:1%; }
.ui-helper-clearfix { display:block; }
/* end clearfix */
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }


/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }


/* Icons
----------------------------------*/

/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }


/* Misc visuals
----------------------------------*/

/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }


/*
* jQuery UI CSS Framework @VERSION
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/


/* Component containers
----------------------------------*/
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
.ui-widget-content a { color: #222222; }
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
.ui-widget-header a { color: #222222; }

/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
.ui-widget :active { outline: none; }

/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }

/* Icons
----------------------------------*/

/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }

/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }


/* Misc visuals
----------------------------------*/

/* Corner radius */
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }

/* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
/*
ColorBox Core Style:
The following CSS is consistent between example themes and should not be altered.
*/
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
#cboxOverlay{position:fixed; width:100%; height:100%;}
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
#cboxContent{position:relative;}
#cboxLoadedContent{overflow:auto;}
#cboxTitle{margin:0;}
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
.cboxIframe{width:100%; height:100%; display:block; border:0;}
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box;}

/*
User Style:
Change the following styles to modify the appearance of ColorBox. They are
ordered & tabbed in a way that represents the nesting of the generated HTML.
*/
#cboxOverlay{background:#000;}
#colorbox{}
#cboxTopLeft{width:14px; height:14px; background:url(colorbox/controls.png) no-repeat 0 0;}
#cboxTopCenter{height:14px; background:url(colorbox/border.png) repeat-x top left;}
#cboxTopRight{width:14px; height:14px; background:url(colorbox/controls.png) no-repeat -36px 0;}
#cboxBottomLeft{width:14px; height:43px; background:url(colorbox/controls.png) no-repeat 0 -32px;}
#cboxBottomCenter{height:43px; background:url(colorbox/border.png) repeat-x bottom left;}
#cboxBottomRight{width:14px; height:43px; background:url(colorbox/controls.png) no-repeat -36px -32px;}
#cboxMiddleLeft{width:14px; background:url(colorbox/controls.png) repeat-y -175px 0;}
#cboxMiddleRight{width:14px; background:url(colorbox/controls.png) repeat-y -211px 0;}
#cboxContent{background:#fff; overflow:visible;}
.cboxIframe{background:#fff;}
#cboxError{padding:50px; border:1px solid #ccc;}
#cboxLoadedContent{margin-bottom:5px;}
#cboxLoadingOverlay{background:url(colorbox/loading_background.png) no-repeat center center;}
#cboxLoadingGraphic{background:url(colorbox/loading.gif) no-repeat center center;}
#cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
#cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}

#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(colorbox/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
#cboxPrevious{left:0px; background-position: -51px -25px;}
#cboxPrevious:hover{background-position:-51px 0px;}
#cboxNext{left:27px; background-position:-75px -25px;}
#cboxNext:hover{background-position:-75px 0px;}
#cboxClose{right:0; background-position:-100px -25px;}
#cboxClose:hover{background-position:-100px 0px;}

.cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
.cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
.cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
.cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;}
#loading {
position: fixed;
left: 40%;
top: 50%; }

a {
color: #333333;
text-decoration: none; }
a:hover {
color: black;
text-decoration: underline; }

body {
font-family: "Lucida Grande", Helvetica, "Helvetica Neue", Arial, sans-serif;
padding: 12px;
background-color: #333333; }

h1, h2, h3, h4 {
color: #1c2324;
margin: 0;
padding: 0;
margin-bottom: 12px; }

table {
width: 100%; }

#content {
clear: left;
background-color: white;
border: 2px solid #dddddd;
border-top: 8px solid #dddddd;
padding: 18px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-bottomleft: 5px;
-moz-border-radius-bottomright: 5px;
-moz-border-radius-topright: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
border-top-right-radius: 5px; }

.dataTables_filter, .dataTables_info {
padding: 2px 6px; }

abbr.timeago {
text-decoration: none;
border: none;
font-weight: bold; }

.timestamp {
float: right;
color: #dddddd; }

.group_tabs {
list-style: none;
float: left;
margin: 0;
padding: 0; }
.group_tabs li {
display: inline;
float: left; }
.group_tabs li a {
font-family: Helvetica, Arial, sans-serif;
display: block;
float: left;
text-decoration: none;
padding: 4px 8px;
background-color: #aaaaaa;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dddddd), to(#aaaaaa));
background: -moz-linear-gradient(#dddddd, #aaaaaa);
background: linear-gradient(#dddddd, #aaaaaa);
text-shadow: #e5e5e5 1px 1px 0px;
border-bottom: none;
color: #333333;
font-weight: bold;
margin-right: 8px;
border-top: 1px solid #efefef;
-webkit-border-top-left-radius: 2px;
-webkit-border-top-right-radius: 2px;
-moz-border-radius-topleft: 2px;
-moz-border-radius-topright: 2px;
border-top-left-radius: 2px;
border-top-right-radius: 2px; }
.group_tabs li a:hover {
background-color: #cccccc;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#eeeeee), to(#aaaaaa));
background: -moz-linear-gradient(#eeeeee, #aaaaaa);
background: linear-gradient(#eeeeee, #aaaaaa); }
.group_tabs li a:active {
padding-top: 5px;
padding-bottom: 3px; }
.group_tabs li.active a {
color: black;
text-shadow: white 1px 1px 0px;
background-color: #dddddd;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(white), to(#dddddd));
background: -moz-linear-gradient(white, #dddddd);
background: linear-gradient(white, #dddddd); }

.file_list {
margin-bottom: 18px; }

a.src_link {
background: url("./magnify.png") no-repeat left 50%;
padding-left: 18px; }

tr, td {
margin: 0;
padding: 0; }

th {
white-space: nowrap; }
th.ui-state-default {
cursor: pointer; }
th span.ui-icon {
float: left; }

td {
padding: 4px 8px; }
td.strong {
font-weight: bold; }

.source_table h3, .source_table h4 {
padding: 0;
margin: 0;
margin-bottom: 4px; }
.source_table .header {
padding: 10px; }
.source_table pre {
margin: 0;
padding: 0;
white-space: normal;
color: black;
font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
.source_table code {
color: black;
font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
.source_table pre {
background-color: #333333; }
.source_table pre ol {
margin: 0px;
padding: 0px;
margin-left: 45px;
font-size: 12px;
color: white; }
.source_table pre li {
margin: 0px;
padding: 2px 6px;
border-left: 5px solid white; }
.source_table pre li code {
white-space: pre;
white-space: pre-wrap; }
.source_table pre .hits {
float: right;
margin-left: 10px;
padding: 2px 4px;
background-color: #444444;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#222222), to(#666666));
background: -moz-linear-gradient(#222222, #666666);
background: linear-gradient(#222222, #666666);
color: white;
font-family: Helvetica, "Helvetica Neue", Arial, sans-serif;
font-size: 10px;
font-weight: bold;
text-align: center;
border-radius: 6px; }

#footer {
color: #dddddd;
font-size: 12px;
font-weight: bold;
margin-top: 12px;
text-align: right; }
#footer a {
color: #eeeeee;
text-decoration: underline; }
#footer a:hover {
color: white;
text-decoration: none; }

.green {
color: #009900; }

.red {
color: #990000; }

.yellow {
color: #ddaa00; }

.source_table .covered {
border-color: #009900; }
.source_table .missed {
border-color: #990000; }
.source_table .never {
border-color: black; }
.source_table .skipped {
border-color: #ffcc00; }
.source_table .covered:nth-child(odd) {
background-color: #cdf2cd; }
.source_table .covered:nth-child(even) {
background-color: #dbf2db; }
.source_table .missed:nth-child(odd) {
background-color: #f7c0c0; }
.source_table .missed:nth-child(even) {
background-color: #f7cfcf; }
.source_table .never:nth-child(odd) {
background-color: #efefef; }
.source_table .never:nth-child(even) {
background-color: #f4f4f4; }
.source_table .skipped:nth-child(odd) {
background-color: #fbf0c0; }
.source_table .skipped:nth-child(even) {
background-color: #fbffcf; }




+ 1707
- 0
coverage/assets/0.10.2/application.js
File diff suppressed because it is too large
View File


BIN
coverage/assets/0.10.2/colorbox/border.png View File

Before After
Width: 1  |  Height: 75  |  Size: 163 B

BIN
coverage/assets/0.10.2/colorbox/controls.png View File

Before After
Width: 225  |  Height: 75  |  Size: 2.0 kB

BIN
coverage/assets/0.10.2/colorbox/loading.gif View File

Before After
Width: 32  |  Height: 32  |  Size: 9.4 kB

BIN
coverage/assets/0.10.2/colorbox/loading_background.png View File

Before After
Width: 40  |  Height: 40  |  Size: 166 B

BIN
coverage/assets/0.10.2/favicon_green.png View File

Before After
Width: 16  |  Height: 16  |  Size: 1.0 kB

BIN
coverage/assets/0.10.2/favicon_red.png View File

Before After
Width: 16  |  Height: 16  |  Size: 1.0 kB

BIN
coverage/assets/0.10.2/favicon_yellow.png View File

Before After
Width: 16  |  Height: 16  |  Size: 1.0 kB

BIN
coverage/assets/0.10.2/loading.gif View File

Before After
Width: 126  |  Height: 22  |  Size: 7.2 kB

BIN
coverage/assets/0.10.2/magnify.png View File

Before After
Width: 12  |  Height: 15  |  Size: 1.3 kB

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png View File

Before After
Width: 40  |  Height: 100  |  Size: 180 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png View File

Before After
Width: 40  |  Height: 100  |  Size: 178 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png View File

Before After
Width: 1  |  Height: 400  |  Size: 120 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png View File

Before After
Width: 1  |  Height: 400  |  Size: 105 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png View File

Before After
Width: 1  |  Height: 400  |  Size: 111 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png View File

Before After
Width: 1  |  Height: 400  |  Size: 110 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png View File

Before After
Width: 1  |  Height: 400  |  Size: 119 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png View File

Before After
Width: 1  |  Height: 100  |  Size: 101 B

BIN
coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png View File

Before After
Width: 256  |  Height: 240  |  Size: 4.4 kB

BIN
coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png View File

Before After
Width: 256  |  Height: 240  |  Size: 4.4 kB

BIN
coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png View File

Before After
Width: 256  |  Height: 240  |  Size: 4.4 kB

BIN
coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png View File

Before After
Width: 256  |  Height: 240  |  Size: 4.4 kB

BIN
coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png View File

Before After
Width: 256  |  Height: 240  |  Size: 4.4 kB

+ 100184
- 0
coverage/index.html
File diff suppressed because it is too large
View File


+ 5
- 0
db/migrate/20211012064053_change_user_description_to_sponsor_description.rb View File

@@ -0,0 +1,5 @@
class ChangeUserDescriptionToSponsorDescription < ActiveRecord::Migration[5.2]
def change
rename_column :users, :description, :sponsor_description
end
end

+ 3431
- 0
out.txt
File diff suppressed because it is too large
View File


+ 0
- 5
spec/controllers/admin_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe AdminController, type: :controller do

end

+ 0
- 47
spec/controllers/admins/edu_settings_controller_spec.rb View File

@@ -1,47 +0,0 @@
require 'rails_helper'

RSpec.describe Admins::EduSettingsController, type: :controller do

describe "GET #index" do
it "returns http success" do
get :index
expect(response).to have_http_status(:success)
end
end

describe "GET #new" do
it "returns http success" do
get :new
expect(response).to have_http_status(:success)
end
end

describe "GET #update" do
it "returns http success" do
get :update
expect(response).to have_http_status(:success)
end
end

describe "GET #edit" do
it "returns http success" do
get :edit
expect(response).to have_http_status(:success)
end
end

describe "GET #create" do
it "returns http success" do
get :create
expect(response).to have_http_status(:success)
end
end

describe "GET #destroy" do
it "returns http success" do
get :destroy
expect(response).to have_http_status(:success)
end
end

end

+ 0
- 5
spec/controllers/blob_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe BlobController, type: :controller do

end

+ 0
- 5
spec/controllers/boards_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe BoardsController, type: :controller do
end

+ 0
- 5
spec/controllers/comments_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CommentsController, type: :controller do

end

+ 0
- 5
spec/controllers/course_groups_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe CourseGroupsController, type: :controller do
end

+ 0
- 5
spec/controllers/course_modules_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe CourseModulesController, type: :controller do
end

+ 0
- 5
spec/controllers/course_second_categories_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe CourseSecondCategoriesController, type: :controller do
end

+ 0
- 5
spec/controllers/course_stages_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CourseStagesController, type: :controller do

end

+ 0
- 141
spec/controllers/courses_controller_spec.rb View File

@@ -1,141 +0,0 @@
require 'rails_helper'
# This spec was generated by rspec-rails when you ran the scaffold generator.
# It demonstrates how one might use RSpec to specify the controller code that
# was generated by Rails when you ran the scaffold generator.
#
# It assumes that the implementation code is generated by the rails scaffold
# generator. If you are using any extension libraries to generate different
# controller code, this generated spec may or may not pass.
#
# It only uses APIs available in rails and/or rspec-rails. There are a number
# of tools you can use to make these specs even more expressive, but we're
# sticking to rails and rspec-rails APIs to keep things simple and stable.
#
# Compared to earlier versions of this generator, there is very limited use of
# stubs and message expectations in this spec. Stubs are only used when there
# is no simpler way to get a handle on the object needed for the example.
# Message expectations are only used when there is no simpler way to specify
# that an instance is receiving a specific message.
#
# Also compared to earlier versions of this generator, there are no longer any
# expectations of assigns and templates rendered. These features have been
# removed from Rails core in Rails 5, but can be added back in via the
# `rails-controller-testing` gem.
RSpec.describe CoursesController, type: :controller do
# This should return the minimal set of attributes required to create a valid
# Course. As you add validations to Course, be sure to
# adjust the attributes here as well.
let(:valid_attributes) {
skip("Add a hash of attributes valid for your model")
}
let(:invalid_attributes) {
skip("Add a hash of attributes invalid for your model")
}
# This should return the minimal set of values that should be in the session
# in order to pass any filters (e.g. authentication) defined in
# CoursesController. Be sure to keep this updated too.
let(:valid_session) { {} }
describe "GET #index" do
it "returns a success response" do
Course.create! valid_attributes
get :index, params: {}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #show" do
it "returns a success response" do
course = Course.create! valid_attributes
get :show, params: {id: course.to_param}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #new" do
it "returns a success response" do
get :new, params: {}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #edit" do
it "returns a success response" do
course = Course.create! valid_attributes
get :edit, params: {id: course.to_param}, session: valid_session
expect(response).to be_successful
end
end
describe "POST #create" do
context "with valid params" do
it "creates a new Course" do
expect {
post :create, params: {course: valid_attributes}, session: valid_session
}.to change(Course, :count).by(1)
end
it "redirects to the created course" do
post :create, params: {course: valid_attributes}, session: valid_session
expect(response).to redirect_to(Course.last)
end
end
context "with invalid params" do
it "returns a success response (i.e. to display the 'new' template)" do
post :create, params: {course: invalid_attributes}, session: valid_session
expect(response).to be_successful
end
end
end
describe "PUT #update" do
context "with valid params" do
let(:new_attributes) {
skip("Add a hash of attributes valid for your model")
}
it "updates the requested course" do
course = Course.create! valid_attributes
put :update, params: {id: course.to_param, course: new_attributes}, session: valid_session
course.reload
skip("Add assertions for updated state")
end
it "redirects to the course" do
course = Course.create! valid_attributes
put :update, params: {id: course.to_param, course: valid_attributes}, session: valid_session
expect(response).to redirect_to(course)
end
end
context "with invalid params" do
it "returns a success response (i.e. to display the 'edit' template)" do
course = Course.create! valid_attributes
put :update, params: {id: course.to_param, course: invalid_attributes}, session: valid_session
expect(response).to be_successful
end
end
end
describe "DELETE #destroy" do
it "destroys the requested course" do
course = Course.create! valid_attributes
expect {
delete :destroy, params: {id: course.to_param}, session: valid_session
}.to change(Course, :count).by(-1)
end
it "redirects to the courses list" do
course = Course.create! valid_attributes
delete :destroy, params: {id: course.to_param}, session: valid_session
expect(response).to redirect_to(courses_url)
end
end
end

+ 0
- 5
spec/controllers/edu_datas_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe EduDatasController, type: :controller do

end

+ 0
- 5
spec/controllers/graduation_tasks_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe GraduationTasksController, type: :controller do
end

+ 0
- 5
spec/controllers/graduation_topics_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe GraduationTopicsController, type: :controller do
end

+ 0
- 5
spec/controllers/graduation_works_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe GraduationWorksController, type: :controller do
end

+ 0
- 5
spec/controllers/hack_user_lastest_codes_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HackUserLastestCodesController, type: :controller do

end

+ 0
- 5
spec/controllers/hacks_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HacksController, type: :controller do

end

+ 0
- 12
spec/controllers/home_controller_spec.rb View File

@@ -1,12 +0,0 @@
require 'rails_helper'
RSpec.describe HomeController, type: :controller do
describe "GET #index" do
it "returns http success" do
get :index
expect(response).to have_http_status(:success)
end
end
end

+ 0
- 5
spec/controllers/homework_banks_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkBanksController, type: :controller do

end

+ 0
- 5
spec/controllers/homework_commons_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe HomeworkCommonsController, type: :controller do
end

+ 0
- 141
spec/controllers/memos_controller_spec.rb View File

@@ -1,141 +0,0 @@
require 'rails_helper'
# This spec was generated by rspec-rails when you ran the scaffold generator.
# It demonstrates how one might use RSpec to specify the controller code that
# was generated by Rails when you ran the scaffold generator.
#
# It assumes that the implementation code is generated by the rails scaffold
# generator. If you are using any extension libraries to generate different
# controller code, this generated spec may or may not pass.
#
# It only uses APIs available in rails and/or rspec-rails. There are a number
# of tools you can use to make these specs even more expressive, but we're
# sticking to rails and rspec-rails APIs to keep things simple and stable.
#
# Compared to earlier versions of this generator, there is very limited use of
# stubs and message expectations in this spec. Stubs are only used when there
# is no simpler way to get a handle on the object needed for the example.
# Message expectations are only used when there is no simpler way to specify
# that an instance is receiving a specific message.
#
# Also compared to earlier versions of this generator, there are no longer any
# expectations of assigns and templates rendered. These features have been
# removed from Rails core in Rails 5, but can be added back in via the
# `rails-controller-testing` gem.
RSpec.describe MemosController, type: :controller do
# This should return the minimal set of attributes required to create a valid
# Memo. As you add validations to Memo, be sure to
# adjust the attributes here as well.
let(:valid_attributes) {
skip("Add a hash of attributes valid for your model")
}
let(:invalid_attributes) {
skip("Add a hash of attributes invalid for your model")
}
# This should return the minimal set of values that should be in the session
# in order to pass any filters (e.g. authentication) defined in
# MemosController. Be sure to keep this updated too.
let(:valid_session) { {} }
describe "GET #index" do
it "returns a success response" do
Memo.create! valid_attributes
get :index, params: {}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #show" do
it "returns a success response" do
memo = Memo.create! valid_attributes
get :show, params: {id: memo.to_param}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #new" do
it "returns a success response" do
get :new, params: {}, session: valid_session
expect(response).to be_successful
end
end
describe "GET #edit" do
it "returns a success response" do
memo = Memo.create! valid_attributes
get :edit, params: {id: memo.to_param}, session: valid_session
expect(response).to be_successful
end
end
describe "POST #create" do
context "with valid params" do
it "creates a new Memo" do
expect {
post :create, params: {memo: valid_attributes}, session: valid_session
}.to change(Memo, :count).by(1)
end
it "redirects to the created memo" do
post :create, params: {memo: valid_attributes}, session: valid_session
expect(response).to redirect_to(Memo.last)
end
end
context "with invalid params" do
it "returns a success response (i.e. to display the 'new' template)" do
post :create, params: {memo: invalid_attributes}, session: valid_session
expect(response).to be_successful
end
end
end
describe "PUT #update" do
context "with valid params" do
let(:new_attributes) {
skip("Add a hash of attributes valid for your model")
}
it "updates the requested memo" do
memo = Memo.create! valid_attributes
put :update, params: {id: memo.to_param, memo: new_attributes}, session: valid_session
memo.reload
skip("Add assertions for updated state")
end
it "redirects to the memo" do
memo = Memo.create! valid_attributes
put :update, params: {id: memo.to_param, memo: valid_attributes}, session: valid_session
expect(response).to redirect_to(memo)
end
end
context "with invalid params" do
it "returns a success response (i.e. to display the 'edit' template)" do
memo = Memo.create! valid_attributes
put :update, params: {id: memo.to_param, memo: invalid_attributes}, session: valid_session
expect(response).to be_successful
end
end
end
describe "DELETE #destroy" do
it "destroys the requested memo" do
memo = Memo.create! valid_attributes
expect {
delete :destroy, params: {id: memo.to_param}, session: valid_session
}.to change(Memo, :count).by(-1)
end
it "redirects to the memos list" do
memo = Memo.create! valid_attributes
delete :destroy, params: {id: memo.to_param}, session: valid_session
expect(response).to redirect_to(memos_url)
end
end
end

+ 0
- 26
spec/controllers/messages_controller_spec.rb View File

@@ -1,26 +0,0 @@
require 'rails_helper'
RSpec.describe MessagesController, type: :controller do
describe "GET #index" do
it "returns http success" do
get :index
expect(response).to have_http_status(:success)
end
end
describe "GET #create" do
it "returns http success" do
get :create
expect(response).to have_http_status(:success)
end
end
describe "GET #show" do
it "returns http success" do
get :show
expect(response).to have_http_status(:success)
end
end
end

+ 0
- 40
spec/controllers/protected_branches_controller_spec.rb View File

@@ -1,40 +0,0 @@
require 'rails_helper'

RSpec.describe ProtectedBranchesController, type: :controller do

describe "GET #index" do
it "returns http success" do
get :index
expect(response).to have_http_status(:success)
end
end

describe "GET #create" do
it "returns http success" do
get :create
expect(response).to have_http_status(:success)
end
end

describe "GET #edit" do
it "returns http success" do
get :edit
expect(response).to have_http_status(:success)
end
end

describe "GET #update" do
it "returns http success" do
get :update
expect(response).to have_http_status(:success)
end
end

describe "GET #destroy" do
it "returns http success" do
get :destroy
expect(response).to have_http_status(:success)
end
end

end

+ 0
- 5
spec/controllers/question_banks_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe QuestionBanksController, type: :controller do
end

+ 0
- 5
spec/controllers/schools_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe SchoolsController, type: :controller do
end

+ 90
- 27
spec/controllers/sponsorships_controller_spec.rb View File

@@ -48,58 +48,121 @@ RSpec.describe SponsorshipsController, type: :controller do
# in order to pass any filters (e.g. authentication) defined in # in order to pass any filters (e.g. authentication) defined in
# SponsorshipsController. Be sure to keep this updated too. # SponsorshipsController. Be sure to keep this updated too.
let(:valid_session) { {www_user_id: 5} } let(:valid_session) { {www_user_id: 5} }
let(:visitor_session) { {www_user_id: 4} }


describe "GET #index" do
it "returns a success response" do

describe 'GET #index' do
before {Sponsorship.create valid_attributes}
it 'success' do
Sponsorship.create! valid_attributes Sponsorship.create! valid_attributes
get :index, params: {}, format: 'json', session: valid_session get :index, params: {}, format: 'json', session: valid_session
expect(response.body).to eq('[]')
expect(response).to be_successful
end end
end end


describe "GET #stopped" do
it "returns a success response" do
describe 'GET #stopped' do
it 'returns a success response' do
sponsorship=StoppedSponsorship.create! valid_attributes sponsorship=StoppedSponsorship.create! valid_attributes
get :stopped, params: {}, format: 'json', session: valid_session get :stopped, params: {}, format: 'json', session: valid_session
expect(response).to be_successful expect(response).to be_successful
end end
end end


describe "GET #show" do
it "returns a success response" do
describe 'GET #sponsored' do
context 'owner' do
it 'returns a success response' do
sponsorship=Sponsorship.create! valid_attributes
get :sponsored, params: {id: 5}, format: 'json', session: valid_session
expect(response).to be_successful
end
end
context 'visitor' do
it 'returns a success response' do
sponsorship=Sponsorship.create! valid_attributes
get :sponsored, params: {id: 5}, format: 'json', session: visitor_session
expect(response).to be_successful
end
end
end

describe 'GET #sponsoring' do
# before {Sponsorship.create! valid_attributes}
context 'owner' do
it 'returns a success response' do
# sponsorship=Sponsorship.create! valid_attributes
get :sponsoring, params: {id: 5}, format: 'json', session: valid_session
expect(response).to be_successful
end
end
context 'visitor' do
it 'returns a success response' do
# sponsorship=Sponsorship.create! valid_attributes
get :sponsoring, params: {id: 5}, format: 'json', session: visitor_session
expect(response).to be_successful
end
end
end

describe 'GET #stopped_sponsored' do
it 'returns a success response' do
sponsorship=Sponsorship.create! valid_attributes
get :stopped_sponsored, params: {id: 5}, format: 'json', session: valid_session
expect(response).to be_successful
end
end

describe 'GET #stopped_sponsoring' do
before {Sponsorship.create! valid_attributes}
it 'returns a success response' do
# sponsorship=Sponsorship.create! valid_attributes
get :stopped_sponsoring, params: {id: 5}, format: 'json', session: valid_session
expect(response).to be_successful
end
end

describe 'GET #show' do
it 'returns a success response' do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
get :show, params: {id: sponsorship.to_param}, session: valid_session get :show, params: {id: sponsorship.to_param}, session: valid_session
expect(response).to be_successful expect(response).to be_successful
end end
end end


describe "POST #create" do
context "with valid params" do
it "creates a new Sponsorship" do
describe 'GET #community_data' do
it 'returns a success response' do
sponsorship = Sponsorship.create! valid_attributes
get :community_data, params: {}, session: valid_session
expect(response).to be_successful
end
end

describe 'POST #create' do
context 'with valid params' do
it 'creates a new Sponsorship' do
expect { expect {
post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session
}.to change(Sponsorship, :count).by(1) }.to change(Sponsorship, :count).by(1)
end end


it "redirects to the created sponsorship" do
it 'redirects to the created sponsorship' do
post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session
expect(response).to be_ok expect(response).to be_ok
end end
end end


context "single sponsor" do
context 'single sponsor' do
let(:valid_single_params){ let(:valid_single_params){
{amount: 10, visible: 1, developer_id: 1, single: true} {amount: 10, visible: 1, developer_id: 1, single: true}
} }
it "creates a stopped sponsorship" do
it 'creates a stopped sponsorship' do
expect { expect {
post :create, params: {amount: 10, visible: 1, developer_id: 1, single: true}, session: valid_session post :create, params: {amount: 10, visible: 1, developer_id: 1, single: true}, session: valid_session
}.to change(StoppedSponsorship, :count).by(0) }.to change(StoppedSponsorship, :count).by(0)
end end
end end


context "repeat sponsor" do
it "creates only one new Sponsorship" do
context 'repeat sponsor' do
it 'creates only one new Sponsorship' do
Sponsorship.create! valid_attributes Sponsorship.create! valid_attributes
expect { expect {
post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session post :create, params: {sponsorship: valid_create_api_attributes}, session: valid_session
@@ -107,7 +170,7 @@ RSpec.describe SponsorshipsController, type: :controller do
end end
end end


context "with invalid params" do
context 'with invalid params' do
it "returns a success response (i.e. to display the 'new' template)" do it "returns a success response (i.e. to display the 'new' template)" do
post :create, params: {sponsorship: invalid_attributes}, session: valid_session post :create, params: {sponsorship: invalid_attributes}, session: valid_session
expect(response).to be_successful expect(response).to be_successful
@@ -115,13 +178,13 @@ RSpec.describe SponsorshipsController, type: :controller do
end end
end end


describe "PUT #update" do
context "with valid params" do
describe 'PUT #update' do
context 'with valid params' do
let(:new_attributes) { let(:new_attributes) {
{amount: 20, visible: 0} {amount: 20, visible: 0}
} }


it "updates the requested sponsorship" do
it 'updates the requested sponsorship' do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
put :update, params: {id: sponsorship.to_param, sponsorship: new_attributes}, session: valid_session put :update, params: {id: sponsorship.to_param, sponsorship: new_attributes}, session: valid_session
sponsorship.reload sponsorship.reload
@@ -129,7 +192,7 @@ RSpec.describe SponsorshipsController, type: :controller do
expect(sponsorship.visible).to eq(0) expect(sponsorship.visible).to eq(0)
end end


it "does not updates the requested sponsorship with wrong user" do
it 'does not updates the requested sponsorship with wrong user' do
sponsorship = Sponsorship.create! invalid_user_attributes sponsorship = Sponsorship.create! invalid_user_attributes
put :update, params: {id: sponsorship.to_param, sponsorship: new_attributes}, session: valid_session put :update, params: {id: sponsorship.to_param, sponsorship: new_attributes}, session: valid_session
sponsorship.reload sponsorship.reload
@@ -137,14 +200,14 @@ RSpec.describe SponsorshipsController, type: :controller do
expect(sponsorship.visible).to eq(1) expect(sponsorship.visible).to eq(1)
end end


it "return ok" do
it 'return ok' do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
put :update, params: {id: sponsorship.to_param, sponsorship: valid_attributes}, session: valid_session put :update, params: {id: sponsorship.to_param, sponsorship: valid_attributes}, session: valid_session
expect(response).to be_ok expect(response).to be_ok
end end
end end


context "with invalid params" do
context 'with invalid params' do
it "returns a success response (i.e. to display the 'edit' template)" do it "returns a success response (i.e. to display the 'edit' template)" do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
put :update, params: {id: sponsorship.to_param, sponsorship: invalid_attributes}, session: valid_session put :update, params: {id: sponsorship.to_param, sponsorship: invalid_attributes}, session: valid_session
@@ -153,28 +216,28 @@ RSpec.describe SponsorshipsController, type: :controller do
end end
end end


describe "DELETE #destroy" do
it "destroys the requested sponsorship" do
describe 'DELETE #destroy' do
it 'destroys the requested sponsorship' do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
expect { expect {
delete :destroy, params: {id: sponsorship.to_param}, session: valid_session delete :destroy, params: {id: sponsorship.to_param}, session: valid_session
}.to change(Sponsorship, :count).by(-1) }.to change(Sponsorship, :count).by(-1)
end end


it "destroys the requested sponsorship" do
it 'destroys the requested sponsorship' do
sponsorship = Sponsorship.create! invalid_user_attributes sponsorship = Sponsorship.create! invalid_user_attributes
expect { expect {
delete :destroy, params: {id: sponsorship.to_param}, session: valid_session delete :destroy, params: {id: sponsorship.to_param}, session: valid_session
}.to change(Sponsorship, :count).by(0) }.to change(Sponsorship, :count).by(0)
end end


it "return ok" do
it 'return ok' do
sponsorship = Sponsorship.create! valid_attributes sponsorship = Sponsorship.create! valid_attributes
delete :destroy, params: {id: sponsorship.to_param}, session: valid_session delete :destroy, params: {id: sponsorship.to_param}, session: valid_session
expect(response).to be_ok expect(response).to be_ok
end end


it "return ok" do
it 'return ok' do
sponsorship = Sponsorship.create! invalid_user_attributes sponsorship = Sponsorship.create! invalid_user_attributes
delete :destroy, params: {id: sponsorship.to_param}, session: valid_session delete :destroy, params: {id: sponsorship.to_param}, session: valid_session
expect(response).to be_ok expect(response).to be_ok


+ 0
- 5
spec/controllers/stages_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe StagesController, type: :controller do
end

+ 0
- 5
spec/controllers/student_works_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe StudentWorksController, type: :controller do
end

+ 0
- 5
spec/controllers/subject_lists_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe SubjectListsController, type: :controller do

end

+ 0
- 5
spec/controllers/trustie_hacks_controller_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe TrustieHacksController, type: :controller do

end

+ 43
- 3
spec/controllers/wallets_controller_spec.rb View File

@@ -2,11 +2,51 @@ require 'rails_helper'


RSpec.describe WalletsController, type: :controller do RSpec.describe WalletsController, type: :controller do


describe "GET #balance" do
it "returns http success" do
get :balance
let(:valid_session) {
{user_id: 5, www_user_id: 5}
}

describe 'GET #balance' do
it 'returns http success' do
get :balance, params: {id: 5}, session: valid_session
expect(response).to have_http_status(:success)
end
end

describe 'GET #coin_changes' do
context 'all' do
it 'success' do
get :coin_changes, params: {id: 5, category: 'all'}, session: valid_session
expect(response).to have_http_status(:success)
end
end
context 'income' do
it 'success' do
get :coin_changes, params: {id: 5, category: 'income'}, session: valid_session
expect(response).to have_http_status(:success)
end
end

context 'outcome' do
it 'success' do
get :coin_changes, params: {id: 5, category: 'outcome'}, session: valid_session
expect(response).to have_http_status(:success)
end
end
end

describe 'GET #balance_chart' do
it 'returns http success' do
get :balance_chart, params: {id: 5}, session: valid_session
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
end end
end end


describe 'GET #community_data' do
it 'returns http success' do
get :community_data, params: {id: 5}, session: valid_session
expect(response).to have_http_status(:success)
end
end
end end

+ 0
- 15
spec/helpers/exercise_questions_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the ExerciseQuestionsHelper. For example:
#
# describe ExerciseQuestionsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe ExerciseQuestionsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/export_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the ExportHelper. For example:
#
# describe ExportHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe ExportHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/homework_banks_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'

# Specs in this file have access to a helper object that includes
# the HomeworkBanksHelper. For example:
#
# describe HomeworkBanksHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe HomeworkBanksHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/homework_commons_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the HomeworkCommonsHelper. For example:
#
# describe HomeworkCommonsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe HomeworkCommonsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/polls_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the PollsHelper. For example:
#
# describe PollsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe PollsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/question_banks_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the QuestionBanksHelper. For example:
#
# describe QuestionBanksHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe QuestionBanksHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/schools_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the SchoolsHelper. For example:
#
# describe SchoolsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe SchoolsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/student_works_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the StudentWorksHelper. For example:
#
# describe StudentWorksHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe StudentWorksHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 15
spec/helpers/subject_lists_helper_spec.rb View File

@@ -1,15 +0,0 @@
require 'rails_helper'

# Specs in this file have access to a helper object that includes
# the SubjectListsHelper. For example:
#
# describe SubjectListsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe SubjectListsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/create_student_work_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CreateStudentWorkJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/create_subject_course_student_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CreateSubjectCourseStudentJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_absence_penalty_calculation_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkAbsencePenaltyCalculationJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_anonymous_appeal_start_notify_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkAnonymousAppealStartNotifyJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_batch_comment_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkBatchCommentJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_end_update_score_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkEndUpdateScoreJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_evaluation_comment_assgin_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkEvaluationCommentAssginJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_evaluation_start_notify_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe HomeworkEvaluationStartNotifyJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/homework_publish_update_work_status_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe HomeworkPublishUpdateWorkStatusJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/jobs/live_publish_job_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe LivePublishJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/board_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe Board, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/career_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe Career, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/challenge_answer_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe ChallengeAnswer, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/challenge_sample_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe ChallengeSample, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/challenge_work_score_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'
RSpec.describe ChallengeWorkScore, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_award_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionAward, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_course_course_record_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionCourseCourseRecord, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_course_record_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionCourseRecord, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_course_shixun_record_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionCourseShixunRecord, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_mode_setting_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionModeSetting, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_school_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionSchool, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

+ 0
- 5
spec/models/competition_score_spec.rb View File

@@ -1,5 +0,0 @@
require 'rails_helper'

RSpec.describe CompetitionScore, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save