adminpanel 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) hide show
  1. data/.rspec +2 -2
  2. data/.ruby-version +1 -0
  3. data/.travis.yml +8 -8
  4. data/Gemfile +26 -24
  5. data/README.md +57 -57
  6. data/adminpanel.gemspec +41 -39
  7. data/app/assets/fonts/fontawesome-webfont.svg +254 -254
  8. data/app/assets/javascripts/adminpanel/bootstrap-datepicker.js +1159 -1159
  9. data/app/assets/javascripts/adminpanel/bootstrap-timepicker.js +803 -803
  10. data/app/assets/javascripts/adminpanel/bootstrap.js +2170 -2170
  11. data/app/assets/javascripts/adminpanel/{products.js → images_form.js} +13 -13
  12. data/app/assets/javascripts/adminpanel/imagesloaded.js +12 -12
  13. data/app/assets/javascripts/adminpanel/jquery.dataTables.min.js +155 -155
  14. data/app/assets/javascripts/adminpanel/jquery.facybox.js +395 -395
  15. data/app/assets/javascripts/adminpanel/jquery.masonry.min.js +9 -9
  16. data/app/assets/javascripts/adminpanel/jquery.slimscroll.min.js +13 -13
  17. data/app/assets/javascripts/adminpanel/medium-editor.js +702 -702
  18. data/app/assets/javascripts/adminpanel/realm.js +87 -87
  19. data/app/assets/javascripts/adminpanel/tables.js +126 -126
  20. data/app/assets/javascripts/application-admin.js +15 -15
  21. data/app/assets/stylesheets/adminpanel/_clearfix.css.scss +7 -7
  22. data/app/assets/stylesheets/adminpanel/alertify.css +241 -241
  23. data/app/assets/stylesheets/adminpanel/bootstrap.css +6103 -6103
  24. data/app/assets/stylesheets/adminpanel/colorpicker.css +6 -6
  25. data/app/assets/stylesheets/adminpanel/datepicker.css +9 -9
  26. data/app/assets/stylesheets/adminpanel/elfinder.min.css +59 -59
  27. data/app/assets/stylesheets/adminpanel/facybox.css +146 -146
  28. data/app/assets/stylesheets/adminpanel/font-awesome.min.css +33 -33
  29. data/app/assets/stylesheets/adminpanel/fullcalendar.css +618 -618
  30. data/app/assets/stylesheets/adminpanel/fullcalendar.print.css +61 -61
  31. data/app/assets/stylesheets/adminpanel/select2.css +524 -524
  32. data/app/assets/stylesheets/adminpanel/theme.css +1571 -1571
  33. data/app/assets/stylesheets/adminpanel/timepicker.css +82 -82
  34. data/app/assets/stylesheets/application-admin.css +13 -13
  35. data/app/controllers/adminpanel/application_controller.rb +32 -17
  36. data/app/controllers/adminpanel/galleries_controller.rb +80 -80
  37. data/app/controllers/adminpanel/sections_controller.rb +45 -45
  38. data/app/controllers/adminpanel/sessions_controller.rb +26 -26
  39. data/app/controllers/adminpanel/users_controller.rb +84 -84
  40. data/app/helpers/adminpanel/application_helper.rb +41 -51
  41. data/app/helpers/adminpanel/breadcrumbs_helper.rb +16 -0
  42. data/app/helpers/adminpanel/custom_form_builder.rb +248 -0
  43. data/app/helpers/adminpanel/images_helper.rb +9 -9
  44. data/app/helpers/adminpanel/rest_actions_helper.rb +47 -0
  45. data/app/helpers/adminpanel/router_helper.rb +33 -0
  46. data/app/helpers/adminpanel/sessions_helper.rb +25 -25
  47. data/app/models/adminpanel/gallery.rb +60 -60
  48. data/app/models/adminpanel/image.rb +14 -14
  49. data/app/models/adminpanel/section.rb +22 -22
  50. data/app/models/adminpanel/user.rb +35 -35
  51. data/app/uploaders/adminpanel/gallery_uploader.rb +55 -55
  52. data/app/uploaders/adminpanel/image_uploader.rb +57 -57
  53. data/app/views/adminpanel/galleries/_galleries_table.html.erb +14 -14
  54. data/app/views/adminpanel/galleries/create.html.erb +2 -2
  55. data/app/views/adminpanel/galleries/delete.html.erb +2 -2
  56. data/app/views/adminpanel/galleries/edit.html.erb +25 -25
  57. data/app/views/adminpanel/galleries/index.html.erb +51 -51
  58. data/app/views/adminpanel/galleries/new.html.erb +17 -17
  59. data/app/views/adminpanel/galleries/show.html.erb +17 -17
  60. data/app/views/adminpanel/galleries/update.html.erb +2 -2
  61. data/app/views/adminpanel/sections/_image_fields.html.erb +23 -23
  62. data/app/views/adminpanel/sections/_sections_table.html.erb +16 -16
  63. data/app/views/adminpanel/sections/create.html.erb +2 -2
  64. data/app/views/adminpanel/sections/destroy.html.erb +2 -2
  65. data/app/views/adminpanel/sections/edit.html.erb +41 -41
  66. data/app/views/adminpanel/sections/index.html.erb +44 -44
  67. data/app/views/adminpanel/sections/new.html.erb +26 -26
  68. data/app/views/adminpanel/sections/show.html.erb +30 -30
  69. data/app/views/adminpanel/sections/update.html.erb +2 -2
  70. data/app/views/adminpanel/sessions/new.html.erb +25 -25
  71. data/app/views/adminpanel/users/_user_form.html.erb +20 -20
  72. data/app/views/adminpanel/users/edit.html.erb +5 -5
  73. data/app/views/adminpanel/users/index.html.erb +49 -49
  74. data/app/views/adminpanel/users/new.html.erb +5 -5
  75. data/app/views/adminpanel/users/show.html.erb +20 -20
  76. data/app/views/layouts/_shim.html.erb +3 -3
  77. data/app/views/layouts/_side_menu.html.erb +49 -43
  78. data/app/views/layouts/_top_bar.html.erb +43 -43
  79. data/app/views/layouts/admin-login.html.erb +28 -28
  80. data/app/views/layouts/admin.html.erb +41 -39
  81. data/app/views/shared/_breadcrumb.html.erb +6 -6
  82. data/app/views/shared/_error_messages.html.erb +16 -16
  83. data/app/views/shared/_form_fields.html.erb +25 -0
  84. data/app/views/{adminpanel/products → shared}/_image_fields.html.erb +23 -23
  85. data/app/views/shared/_init_editor.html.erb +24 -0
  86. data/app/views/shared/edit.html.erb +28 -0
  87. data/app/views/shared/index.html.erb +94 -0
  88. data/app/views/shared/new.html.erb +28 -0
  89. data/app/views/shared/show.html.erb +63 -0
  90. data/config/locales/en.yml +5 -5
  91. data/config/locales/es.yml +127 -129
  92. data/config/routes.rb +24 -16
  93. data/lib/adminpanel.rb +9 -7
  94. data/lib/adminpanel/active_record_extension.rb +38 -0
  95. data/lib/adminpanel/engine.rb +5 -5
  96. data/lib/adminpanel/version.rb +3 -3
  97. data/lib/generators/adminpanel/initialize/initialize_generator.rb +17 -0
  98. data/lib/generators/adminpanel/{install/templates/migrations → initialize/templates}/create_adminpanel_tables.rb +45 -64
  99. data/lib/generators/adminpanel/resource/resource_generator.rb +105 -0
  100. data/lib/generators/adminpanel/resource/templates/controller.rb +4 -0
  101. data/lib/generators/adminpanel/resource/templates/migration.rb +9 -0
  102. data/lib/generators/adminpanel/resource/templates/resource.rb +19 -0
  103. data/spec/dummy/.gitignore +17 -17
  104. data/spec/dummy/README.rdoc +261 -261
  105. data/spec/dummy/Rakefile +7 -7
  106. data/{app/views/adminpanel/categories/show.html.erb → spec/dummy/app/adminpanel/products.rb} +0 -0
  107. data/spec/dummy/app/assets/javascripts/application.js +13 -13
  108. data/spec/dummy/app/assets/stylesheets/application.css +13 -13
  109. data/spec/dummy/app/controllers/adminpanel/.gitkeep +0 -0
  110. data/spec/dummy/app/controllers/application_controller.rb +3 -11
  111. data/spec/dummy/app/helpers/application_helper.rb +2 -2
  112. data/spec/dummy/app/views/layouts/application.html.erb +14 -14
  113. data/spec/dummy/config.ru +4 -4
  114. data/spec/dummy/config/application.rb +62 -62
  115. data/spec/dummy/config/boot.rb +9 -9
  116. data/spec/dummy/config/carrierwve.rb +5 -5
  117. data/spec/dummy/config/database.yml +24 -24
  118. data/spec/dummy/config/environment.rb +5 -5
  119. data/spec/dummy/config/environments/development.rb +41 -41
  120. data/spec/dummy/config/environments/production.rb +72 -72
  121. data/spec/dummy/config/environments/test.rb +41 -41
  122. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -7
  123. data/spec/dummy/config/initializers/inflections.rb +15 -15
  124. data/spec/dummy/config/initializers/mime_types.rb +5 -5
  125. data/spec/dummy/config/initializers/secret_token.rb +8 -8
  126. data/spec/dummy/config/initializers/session_store.rb +8 -8
  127. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -14
  128. data/spec/dummy/config/locales/en.yml +5 -5
  129. data/spec/dummy/config/routes.rb +4 -4
  130. data/spec/dummy/db/schema.rb +15 -15
  131. data/spec/dummy/public/404.html +26 -26
  132. data/spec/dummy/public/422.html +26 -26
  133. data/spec/dummy/public/500.html +25 -25
  134. data/spec/dummy/public/uploads/gallery/file/1/hipster.jpg +0 -0
  135. data/spec/dummy/public/uploads/gallery/file/1/thumb_hipster.jpg +0 -0
  136. data/spec/dummy/script/rails +6 -6
  137. data/spec/features/authentication_pages_spec.rb +43 -43
  138. data/spec/features/galleries_pages_spec.rb +124 -124
  139. data/spec/features/section_pages_spec.rb +37 -37
  140. data/spec/features/user_pages_spec.rb +48 -48
  141. data/spec/generators/initialize_spec.rb +9 -0
  142. data/spec/generators/resource_spec.rb +122 -0
  143. data/spec/models/gallery_spec.rb +21 -21
  144. data/spec/models/section_spec.rb +66 -66
  145. data/spec/models/user_spec.rb +105 -105
  146. data/spec/spec_helper.rb +32 -31
  147. data/spec/support/define_factory_models.rb +25 -36
  148. data/spec/support/helper_methods.rb +26 -26
  149. data/spec/support/submit_forms_without_button.rb +16 -16
  150. data/spec/support/test_database.rb +45 -58
  151. data/spec/uploaders/gallery_uploader_spec.rb +36 -30
  152. data/spec/uploaders/image_uploader_spec.rb +30 -29
  153. metadata +208 -64
  154. checksums.yaml +0 -7
  155. data/app/assets/javascripts/adminpanel/init_editor.js +0 -28
  156. data/app/controllers/adminpanel/categories_controller.rb +0 -41
  157. data/app/controllers/adminpanel/products_controller.rb +0 -88
  158. data/app/helpers/custom_form_builder.rb +0 -219
  159. data/app/models/adminpanel/category.rb +0 -7
  160. data/app/models/adminpanel/product.rb +0 -24
  161. data/app/views/adminpanel/categories/edit.html.erb +0 -18
  162. data/app/views/adminpanel/categories/index.html.erb +0 -55
  163. data/app/views/adminpanel/categories/new.html.erb +0 -18
  164. data/app/views/adminpanel/products/.DS_Store +0 -0
  165. data/app/views/adminpanel/products/_product_form.html.erb +0 -31
  166. data/app/views/adminpanel/products/edit.html.erb +0 -10
  167. data/app/views/adminpanel/products/index.html.erb +0 -51
  168. data/app/views/adminpanel/products/new.html.erb +0 -10
  169. data/app/views/adminpanel/products/show.html.erb +0 -61
  170. data/config/database.yml +0 -24
  171. data/lib/generators/adminpanel/install/install_generator.rb +0 -12
  172. data/spec/features/categories_pages_spec.rb +0 -44
  173. data/spec/features/product_pages_spec.rb +0 -64
  174. data/spec/models/category_spec.rb +0 -58
  175. data/spec/models/product_spec.rb +0 -51
@@ -1,18 +0,0 @@
1
- <% provide(:page_title, t("category.new")) %>
2
- <% breadcrumb_add('Categorias', products_path) %>
3
- <div class="row-fluid">
4
- <div class = "widget widget-padding span12">
5
- <div class = "widget-header"><i class = "icon-truck"></i><h5>Categoría</h5></div>
6
- <div class = "widget-body">
7
- <div class = "widget-forms clearfix">
8
- <%= custom_form_for(@category, :url => categories_path, :html => {:class => "form-horizontal"}) do |f| %>
9
- <%= render 'shared/error_messages', :object => @category %>
10
- <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre de la categoria" %>
11
- </div>
12
- </div>
13
- <div class = "widget-footer">
14
- <%= f.submit "Agregar", :disable_with => 'Submiting...', :id =>"new-category-button" %>
15
- </div>
16
- <% end -%>
17
- </div>
18
- </div>
@@ -1,31 +0,0 @@
1
- <div class = "widget-body">
2
- <div class = "widget-forms clearfix">
3
- <%= custom_form_for(@product, {:class => "form-horizontal"}) do |f| %>
4
- <%= render 'shared/error_messages', :object => @product %>
5
- <%= f.text_field :name, :label => t("model.attributes.Adminpanel::Product.name"), :placeholder => t("model.attributes.Adminpanel::Product.name") %>
6
- <%= f.text_field :brief, :label => t("model.attributes.Adminpanel::Product.brief"), :placeholder => t("model.attributes.Adminpanel::Product.brief") %>
7
-
8
- <div class="control-group">
9
- <label class="control-label"><%= t("Description") %></label>
10
- <div class="controls">
11
- <%= f.hidden_field :description, :id => "description-field" %>
12
- <% if @product.description.nil? %>
13
- <%= content_tag(:div, @product.description, :class => "editable", "data-placeholder" => t("Write description here")) %>
14
- <% else %>
15
- <%= content_tag(:div, @product.description.html_safe, :class => "editable controls", "data-placeholder" => t("Write description here")) %>
16
- <% end %>
17
- </div>
18
- </div>
19
- <%= f.select :category_id, @categories, :label => t("model.Category") %>
20
-
21
- <%= f.fields_for :images do |builder| %>
22
- <%= render 'image_fields', :f => builder, :model_name => @product.simple_name %>
23
- <% end -%>
24
-
25
- <%= link_to_add_fields t("Add Image"), f, :images, @product.simple_name %>
26
- </div>
27
- </div>
28
- <div class = "widget-footer">
29
- <%= f.submit t("action.save"), :disable_with => 'Submiting...', :id => "save-button" %>
30
- </div>
31
- <% end -%>
@@ -1,10 +0,0 @@
1
- <% provide(:page_title, t("action.edit")) %>
2
- <% breadcrumb_add(t("model.Products"), products_path) %>
3
- <% breadcrumb_add(@product.name, product_path(@product)) %>
4
- <div class="row-fluid">
5
- <div class = "widget widget-padding span12">
6
- <div class = "widget-header"><i class = "icon-truck"></i><h5><%= t("model.Product") %></h5></div>
7
-
8
- <%= render 'product_form' %>
9
- </div>
10
- </div>
@@ -1,51 +0,0 @@
1
- <%= provide(:page_title, "Productos") %>
2
- <div class="row-fluid">
3
- <%=
4
- link_to(
5
- content_tag(:div,
6
- content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, t("product.new"), nil),
7
- :class => "btn btn-box span2"),
8
- new_product_path
9
- )
10
- %>
11
- </div>
12
-
13
- <div class="row-fluid">
14
- <div class="widget widget-padding span12">
15
- <div class="widget-header">
16
- <i class="icon-truck"></i>
17
- <h5>Productos</h5>
18
- </div>
19
- <div class="widget-body">
20
- <div class="dataTables_wrapper form-inline">
21
- <table id="information-table" class="table table-striped table-bordered dataTable">
22
- <thead>
23
- <tr>
24
- <th>Nombre</th>
25
- <th>Descripción</th>
26
- <th>Acción</th>
27
- </tr>
28
- </thead>
29
- <tbody>
30
- <% @products.each do |product| %>
31
- <tr>
32
- <td><%= link_to product.name, product_path(product) %></td>
33
- <td><%= strip_tags product.description %></td>
34
- <td>
35
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_product_path(product), :title => "Editar"%>
36
- <%= link_to content_tag(:i, nil, :class => 'icon-remove'), product_path(product), :title => "Borrar", :method => :delete,
37
- :data => { :confirm => "Seguro?" }
38
- %>
39
- </td>
40
- </tr>
41
- <% end %>
42
- </tbody>
43
- </table>
44
- <div class="row-fluid">
45
- <div class="span6"></div>
46
- <div class="span6"></div>
47
- </div>
48
- </div>
49
- </div>
50
- </div>
51
- </div>
@@ -1,10 +0,0 @@
1
- <% provide(:page_title, t("product.new")) %>
2
- <% breadcrumb_add(t("model.Products"), products_path) %>
3
- <div class="row-fluid">
4
- <div class = "widget widget-padding span12">
5
- <div class = "widget-header"><i class = "icon-truck"></i><h5><%= t("model.Product") %></h5></div>
6
-
7
- <%= render 'product_form' %>
8
- </div>
9
- </div>
10
- </div>
@@ -1,61 +0,0 @@
1
- <% provide(:page_title, @product.name.humanize) %>
2
- <% breadcrumb_add('Productos', products_path) %>
3
-
4
- <div class="row-fluid">
5
- <div class="widget span6">
6
- <div class="widget-header">
7
- <i class="icon-truck"></i>
8
- <h5><%= @product.name.humanize %>
9
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_product_path(@product), :title => "Editar Producto" %>
10
- </h5>
11
- </div>
12
- <div class="widget-body">
13
- <div class="widget-tickets widget-tickets-large clearfix"><ul>
14
- <li class="priority-high">
15
- <div class="span3">
16
- <h6>Breve Descripción:</h6>
17
- </div>
18
- <div class="span8">
19
- <%= @product.brief %>
20
- </div>
21
- </li>
22
-
23
- <li class="priority-high">
24
- <div class="span3">
25
- <h6>Descripción:</h6>
26
- </div>
27
- <div class="span8">
28
- <%= @product.description.html_safe %>
29
- </div>
30
- </li>
31
-
32
- <li class="priority-high">
33
- <div class="span3">
34
- <h6>Categoría</h6>
35
- </div>
36
- <div class="span8">
37
- <%= @product.category.name %>
38
- </div>
39
- </li>
40
- </ul></div>
41
- </div>
42
- </div>
43
- <div id="product-content" class="widget widget-padding span6">
44
- <div class="widget-header">
45
- <i class="icon-truck"></i>
46
- <h5>Galería: <%= @product.name.humanize %>
47
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_product_path(@product), :title => "Editar Producto" %>
48
- </h5>
49
- </div>
50
- <div class="widget-body row-fluid">
51
- <div id="gallery-container" class="js-masonry"
52
- data-masonry-options='{ "columnWidth": 3, "itemSelector": ".gallery-item" }'>
53
- <% @product.images.each do |image|%>
54
- <div class="gallery-item">
55
- <%= link_to (image_tag image.file_url(:thumb)), image.file.to_s, :rel => "group", :name => @product.name %>
56
- </div>
57
- <% end %>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
data/config/database.yml DELETED
@@ -1,24 +0,0 @@
1
- # SQLite version 3.x
2
- # gem install sqlite3
3
- #
4
- # Ensure the SQLite 3 gem is defined in your Gemfile
5
- # gem 'sqlite3'
6
- development:
7
- adapter: sqlite3
8
- database: db/development.sqlite3
9
- pool: 5
10
- timeout: 5000
11
-
12
- # Warning: The database defined as "test" will be erased and
13
- # re-generated from your development database when you run "rake".
14
- # Do not set this db to the same as development or production.
15
- test:
16
- adapter: sqlite3
17
- database: ":memory:"
18
- timeout: 500
19
-
20
- production:
21
- adapter: sqlite3
22
- database: db/production.sqlite3
23
- pool: 5
24
- timeout: 5000
@@ -1,12 +0,0 @@
1
- require "rails/generators/active_record"
2
- module Adminpanel
3
- module Generators
4
- class InstallGenerator < ActiveRecord::Generators::Base
5
- source_root File.expand_path("../templates", __FILE__)
6
-
7
- def create_migrations
8
- migration_template 'migrations/create_adminpanel_tables.rb', 'db/migrate/create_adminpanel_tables.rb'
9
- end
10
- end
11
- end
12
- end
@@ -1,44 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Categories pages" do
4
- subject {page}
5
-
6
- let(:user) { Factory(:user) }
7
- before do
8
- visit adminpanel.signin_path
9
- valid_signin(user)
10
- end
11
-
12
- describe "index" do
13
- let(:category) { Factory(:category) }
14
- before do
15
- visit adminpanel.categories_path
16
- end
17
-
18
- it { should have_link(I18n.t("category.new"), adminpanel.new_category_path)}
19
- it { should have_link("i", adminpanel.category_path(category)) }
20
- it { should have_link("i", adminpanel.edit_category_path(category)) }
21
- end
22
-
23
- describe "new" do
24
- before { visit adminpanel.new_category_path }
25
-
26
- it { should have_title(I18n.t("category.new")) }
27
-
28
- describe "with invalid information" do
29
- before { find("form#new_category").submit_form! }
30
-
31
- it { should have_title(I18n.t("category.new")) }
32
- it { should have_selector("div#alerts") }
33
- end
34
-
35
- describe "with valid information" do
36
- before do
37
- fill_in "category_name", :with => "category name"
38
- find("form#new_category").submit_form!
39
- end
40
-
41
- it { should have_content(I18n.t("category.success"))}
42
- end
43
- end
44
- end
@@ -1,64 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Product pages" do
4
- subject {page}
5
-
6
- let(:user) { Factory(:user) }
7
- before do
8
- visit adminpanel.signin_path
9
- valid_signin(user)
10
- end
11
-
12
- describe "index" do
13
- let(:product) { Factory(:product) }
14
- before do
15
- visit adminpanel.products_path
16
- end
17
-
18
- it { should have_link(I18n.t("product.new"), adminpanel.new_product_path)}
19
- it { should have_link("i", adminpanel.product_path(product)) }
20
- it { should have_link("i", adminpanel.edit_product_path(product)) }
21
- end
22
-
23
- describe "new" do
24
- let(:category) { Factory(:category) }
25
- before do
26
- category.id = 1 #to force instantiation so it becomes available in the select
27
- visit adminpanel.new_product_path
28
- end
29
-
30
- it { should have_title(I18n.t("product.new")) }
31
-
32
- describe "with invalid information" do
33
- before { find("form#new_product").submit_form! }
34
-
35
- it { should have_title(I18n.t("product.new")) }
36
- it { should have_selector("div#alerts") }
37
- end
38
-
39
- describe "with valid information" do
40
- before do
41
- fill_in "product_name", :with => "product name"
42
- fill_in "product_brief", :with => "little brief"
43
- find(:xpath, "//input[@id='description-field']").set "a little longer text"
44
- select category.name, :from => "product_category_id"
45
- find("form#new_product").submit_form!
46
- end
47
-
48
- it { should have_content(I18n.t("product.success"))}
49
- end
50
- end
51
-
52
- describe "show" do
53
- let(:product) { Factory(:product) }
54
-
55
- before do
56
- visit adminpanel.product_path(product)
57
- end
58
-
59
- it { page.should have_selector("div", :text => product.name.humanize) }
60
- it { page.should have_selector("div", :text => product.brief) }
61
- it { page.should have_selector("div", :text => product.description) }
62
- it { page.should have_selector("div", :text => product.category.name) }
63
- end
64
- end
@@ -1,58 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Adminpanel::Category do
4
- before do
5
- @category = Adminpanel::Category.new(
6
- :name => "Test category"
7
- )
8
- end
9
-
10
- subject { @category}
11
-
12
- it {should respond_to(:name) }
13
-
14
- describe "when name is not present" do
15
- before {@category.name = " "}
16
- it {should_not be_valid}
17
- end
18
- end
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
@@ -1,51 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Adminpanel::Product do
4
- before do
5
- @category = Adminpanel::Category.new(
6
- :name => "test category",
7
- :id => 1
8
- )
9
- @product = Adminpanel::Product.new(
10
- :description => "Test description for product",
11
- :name => "product name",
12
- :category_id => "1",
13
- :brief => "short description"
14
- )
15
- end
16
-
17
- subject { @product }
18
-
19
- it { should respond_to(:name) }
20
- it { should respond_to(:description) }
21
- it { should respond_to(:category_id) }
22
- it { should respond_to(:brief) }
23
-
24
- describe "when product belongs to a category" do
25
- before {@category.save}
26
- after {@category.delete}
27
- it {@product.category.should eql(@category)}
28
- end
29
-
30
- describe "when no name present" do
31
- before {@product.name = " "}
32
- it {should_not be_valid}
33
- end
34
-
35
- describe "when no description present" do
36
- before {@product.description = " "}
37
- it {should_not be_valid}
38
- end
39
-
40
- describe "when no category is present" do
41
- before {@product.category_id = " "}
42
- it {should_not be_valid}
43
- end
44
-
45
- describe "when no brief is present" do
46
- before {@product.brief = " "}
47
- it {should_not be_valid}
48
- end
49
-
50
-
51
- end