aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavan Makhmali <javan@javan.us>2018-02-08 16:02:16 -0500
committerJavan Makhmali <javan@javan.us>2018-02-08 16:02:16 -0500
commitd8fd858c9cba69c04e6934f438d045dad2717e90 (patch)
tree1a90026bcf7fe5c4aaf8e3e72fcfb751a44d2a54
parent5012d645daa65ef776d27eb973b3278302c36cad (diff)
downloadrails-d8fd858c9cba69c04e6934f438d045dad2717e90.tar.gz
rails-d8fd858c9cba69c04e6934f438d045dad2717e90.tar.bz2
rails-d8fd858c9cba69c04e6934f438d045dad2717e90.zip
Tests: Add Message scaffolding
-rw-r--r--.gitignore13
-rw-r--r--.ruby-version1
-rw-r--r--test/dummy/.ruby-version1
-rw-r--r--test/dummy/app/assets/javascripts/messages.js2
-rw-r--r--test/dummy/app/assets/stylesheets/messages.css4
-rw-r--r--test/dummy/app/assets/stylesheets/scaffold.css80
-rw-r--r--test/dummy/app/controllers/messages_controller.rb58
-rw-r--r--test/dummy/app/helpers/messages_helper.rb2
-rw-r--r--test/dummy/app/models/message.rb3
-rw-r--r--test/dummy/app/views/messages/_form.html.erb27
-rw-r--r--test/dummy/app/views/messages/edit.html.erb6
-rw-r--r--test/dummy/app/views/messages/index.html.erb29
-rw-r--r--test/dummy/app/views/messages/new.html.erb5
-rw-r--r--test/dummy/app/views/messages/show.html.erb14
-rw-r--r--test/dummy/config/routes.rb1
-rw-r--r--test/dummy/db/migrate/20180208205311_create_messages.rb10
-rw-r--r--test/dummy/db/schema.rb22
-rw-r--r--test/dummy/db/test.sqlite30
-rw-r--r--test/dummy/log/test.log20
-rw-r--r--test/unit/content_test.rb4
20 files changed, 277 insertions, 25 deletions
diff --git a/.gitignore b/.gitignore
index 4d64059f69..0aec2551f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,11 @@
-/node_modules
-
+.bundle/
+log/*.log
+node_modules/
+pkg/
+test/dummy/db/*.sqlite3
+test/dummy/db/*.sqlite3-journal
+test/dummy/log/*.log
+test/dummy/node_modules/
+test/dummy/yarn-error.log
+test/dummy/storage/
+test/dummy/tmp/
diff --git a/.ruby-version b/.ruby-version
new file mode 100644
index 0000000000..437459cd94
--- /dev/null
+++ b/.ruby-version
@@ -0,0 +1 @@
+2.5.0
diff --git a/test/dummy/.ruby-version b/test/dummy/.ruby-version
deleted file mode 100644
index 58073ef8d7..0000000000
--- a/test/dummy/.ruby-version
+++ /dev/null
@@ -1 +0,0 @@
-2.4.1 \ No newline at end of file
diff --git a/test/dummy/app/assets/javascripts/messages.js b/test/dummy/app/assets/javascripts/messages.js
new file mode 100644
index 0000000000..dee720facd
--- /dev/null
+++ b/test/dummy/app/assets/javascripts/messages.js
@@ -0,0 +1,2 @@
+// Place all the behaviors and hooks related to the matching controller here.
+// All this logic will automatically be available in application.js.
diff --git a/test/dummy/app/assets/stylesheets/messages.css b/test/dummy/app/assets/stylesheets/messages.css
new file mode 100644
index 0000000000..afad32db02
--- /dev/null
+++ b/test/dummy/app/assets/stylesheets/messages.css
@@ -0,0 +1,4 @@
+/*
+ Place all the styles related to the matching controller here.
+ They will automatically be included in application.css.
+*/
diff --git a/test/dummy/app/assets/stylesheets/scaffold.css b/test/dummy/app/assets/stylesheets/scaffold.css
new file mode 100644
index 0000000000..cd4f3de38d
--- /dev/null
+++ b/test/dummy/app/assets/stylesheets/scaffold.css
@@ -0,0 +1,80 @@
+body {
+ background-color: #fff;
+ color: #333;
+ margin: 33px;
+}
+
+body, p, ol, ul, td {
+ font-family: verdana, arial, helvetica, sans-serif;
+ font-size: 13px;
+ line-height: 18px;
+}
+
+pre {
+ background-color: #eee;
+ padding: 10px;
+ font-size: 11px;
+}
+
+a {
+ color: #000;
+}
+
+a:visited {
+ color: #666;
+}
+
+a:hover {
+ color: #fff;
+ background-color: #000;
+}
+
+th {
+ padding-bottom: 5px;
+}
+
+td {
+ padding: 0 5px 7px;
+}
+
+div.field,
+div.actions {
+ margin-bottom: 10px;
+}
+
+#notice {
+ color: green;
+}
+
+.field_with_errors {
+ padding: 2px;
+ background-color: red;
+ display: table;
+}
+
+#error_explanation {
+ width: 450px;
+ border: 2px solid red;
+ padding: 7px 7px 0;
+ margin-bottom: 20px;
+ background-color: #f0f0f0;
+}
+
+#error_explanation h2 {
+ text-align: left;
+ font-weight: bold;
+ padding: 5px 5px 5px 15px;
+ font-size: 12px;
+ margin: -7px -7px 0;
+ background-color: #c00;
+ color: #fff;
+}
+
+#error_explanation ul li {
+ font-size: 12px;
+ list-style: square;
+}
+
+label {
+ display: block;
+}
diff --git a/test/dummy/app/controllers/messages_controller.rb b/test/dummy/app/controllers/messages_controller.rb
new file mode 100644
index 0000000000..81c79a2d1e
--- /dev/null
+++ b/test/dummy/app/controllers/messages_controller.rb
@@ -0,0 +1,58 @@
+class MessagesController < ApplicationController
+ before_action :set_message, only: [:show, :edit, :update, :destroy]
+
+ # GET /messages
+ def index
+ @messages = Message.all
+ end
+
+ # GET /messages/1
+ def show
+ end
+
+ # GET /messages/new
+ def new
+ @message = Message.new
+ end
+
+ # GET /messages/1/edit
+ def edit
+ end
+
+ # POST /messages
+ def create
+ @message = Message.new(message_params)
+
+ if @message.save
+ redirect_to @message, notice: 'Message was successfully created.'
+ else
+ render :new
+ end
+ end
+
+ # PATCH/PUT /messages/1
+ def update
+ if @message.update(message_params)
+ redirect_to @message, notice: 'Message was successfully updated.'
+ else
+ render :edit
+ end
+ end
+
+ # DELETE /messages/1
+ def destroy
+ @message.destroy
+ redirect_to messages_url, notice: 'Message was successfully destroyed.'
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_message
+ @message = Message.find(params[:id])
+ end
+
+ # Only allow a trusted parameter "white list" through.
+ def message_params
+ params.require(:message).permit(:subject, :content)
+ end
+end
diff --git a/test/dummy/app/helpers/messages_helper.rb b/test/dummy/app/helpers/messages_helper.rb
new file mode 100644
index 0000000000..f1bca9f6ca
--- /dev/null
+++ b/test/dummy/app/helpers/messages_helper.rb
@@ -0,0 +1,2 @@
+module MessagesHelper
+end
diff --git a/test/dummy/app/models/message.rb b/test/dummy/app/models/message.rb
new file mode 100644
index 0000000000..bb0ae59ad7
--- /dev/null
+++ b/test/dummy/app/models/message.rb
@@ -0,0 +1,3 @@
+class Message < ApplicationRecord
+ active_text_attribute :content
+end
diff --git a/test/dummy/app/views/messages/_form.html.erb b/test/dummy/app/views/messages/_form.html.erb
new file mode 100644
index 0000000000..6f9ba7899c
--- /dev/null
+++ b/test/dummy/app/views/messages/_form.html.erb
@@ -0,0 +1,27 @@
+<%= form_with(model: message, local: true) do |form| %>
+ <% if message.errors.any? %>
+ <div id="error_explanation">
+ <h2><%= pluralize(message.errors.count, "error") %> prohibited this message from being saved:</h2>
+
+ <ul>
+ <% message.errors.full_messages.each do |message| %>
+ <li><%= message %></li>
+ <% end %>
+ </ul>
+ </div>
+ <% end %>
+
+ <div class="field">
+ <%= form.label :subject %>
+ <%= form.text_field :subject %>
+ </div>
+
+ <div class="field">
+ <%= form.label :content %>
+ <%= form.text_area :content %>
+ </div>
+
+ <div class="actions">
+ <%= form.submit %>
+ </div>
+<% end %>
diff --git a/test/dummy/app/views/messages/edit.html.erb b/test/dummy/app/views/messages/edit.html.erb
new file mode 100644
index 0000000000..90ad68c788
--- /dev/null
+++ b/test/dummy/app/views/messages/edit.html.erb
@@ -0,0 +1,6 @@
+<h1>Editing Message</h1>
+
+<%= render 'form', message: @message %>
+
+<%= link_to 'Show', @message %> |
+<%= link_to 'Back', messages_path %>
diff --git a/test/dummy/app/views/messages/index.html.erb b/test/dummy/app/views/messages/index.html.erb
new file mode 100644
index 0000000000..a8c97468c6
--- /dev/null
+++ b/test/dummy/app/views/messages/index.html.erb
@@ -0,0 +1,29 @@
+<p id="notice"><%= notice %></p>
+
+<h1>Messages</h1>
+
+<table>
+ <thead>
+ <tr>
+ <th>Subject</th>
+ <th>Content</th>
+ <th colspan="3"></th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <% @messages.each do |message| %>
+ <tr>
+ <td><%= message.subject %></td>
+ <td><%= message.content %></td>
+ <td><%= link_to 'Show', message %></td>
+ <td><%= link_to 'Edit', edit_message_path(message) %></td>
+ <td><%= link_to 'Destroy', message, method: :delete, data: { confirm: 'Are you sure?' } %></td>
+ </tr>
+ <% end %>
+ </tbody>
+</table>
+
+<br>
+
+<%= link_to 'New Message', new_message_path %>
diff --git a/test/dummy/app/views/messages/new.html.erb b/test/dummy/app/views/messages/new.html.erb
new file mode 100644
index 0000000000..6cbd3b8ffe
--- /dev/null
+++ b/test/dummy/app/views/messages/new.html.erb
@@ -0,0 +1,5 @@
+<h1>New Message</h1>
+
+<%= render 'form', message: @message %>
+
+<%= link_to 'Back', messages_path %>
diff --git a/test/dummy/app/views/messages/show.html.erb b/test/dummy/app/views/messages/show.html.erb
new file mode 100644
index 0000000000..837b11ef1d
--- /dev/null
+++ b/test/dummy/app/views/messages/show.html.erb
@@ -0,0 +1,14 @@
+<p id="notice"><%= notice %></p>
+
+<p>
+ <strong>Subject:</strong>
+ <%= @message.subject %>
+</p>
+
+<p>
+ <strong>Content:</strong>
+ <%= @message.content %>
+</p>
+
+<%= link_to 'Edit', edit_message_path(@message) %> |
+<%= link_to 'Back', messages_path %>
diff --git a/test/dummy/config/routes.rb b/test/dummy/config/routes.rb
index 787824f888..30b05169b3 100644
--- a/test/dummy/config/routes.rb
+++ b/test/dummy/config/routes.rb
@@ -1,3 +1,4 @@
Rails.application.routes.draw do
+ resources :messages
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
diff --git a/test/dummy/db/migrate/20180208205311_create_messages.rb b/test/dummy/db/migrate/20180208205311_create_messages.rb
new file mode 100644
index 0000000000..6817d5933f
--- /dev/null
+++ b/test/dummy/db/migrate/20180208205311_create_messages.rb
@@ -0,0 +1,10 @@
+class CreateMessages < ActiveRecord::Migration[5.2]
+ def change
+ create_table :messages do |t|
+ t.string :subject
+ t.text :content
+
+ t.timestamps
+ end
+ end
+end
diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb
new file mode 100644
index 0000000000..21d6c8d847
--- /dev/null
+++ b/test/dummy/db/schema.rb
@@ -0,0 +1,22 @@
+# This file is auto-generated from the current state of the database. Instead
+# of editing this file, please use the migrations feature of Active Record to
+# incrementally modify your database, and then regenerate this schema definition.
+#
+# Note that this schema.rb definition is the authoritative source for your
+# database schema. If you need to create the application database on another
+# system, you should be using db:schema:load, not running all the migrations
+# from scratch. The latter is a flawed and unsustainable approach (the more migrations
+# you'll amass, the slower it'll run and the greater likelihood for issues).
+#
+# It's strongly recommended that you check this file into your version control system.
+
+ActiveRecord::Schema.define(version: 2018_02_08_205311) do
+
+ create_table "messages", force: :cascade do |t|
+ t.string "subject"
+ t.text "content"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+end
diff --git a/test/dummy/db/test.sqlite3 b/test/dummy/db/test.sqlite3
deleted file mode 100644
index e69de29bb2..0000000000
--- a/test/dummy/db/test.sqlite3
+++ /dev/null
diff --git a/test/dummy/log/test.log b/test/dummy/log/test.log
deleted file mode 100644
index fdb06fb70a..0000000000
--- a/test/dummy/log/test.log
+++ /dev/null
@@ -1,20 +0,0 @@
-  (0.1ms) begin transaction
------------------------------------
-ActiveText::ContentTest: test_truth
------------------------------------
-  (0.0ms) rollback transaction
-  (0.1ms) begin transaction
----------------------------------------------------
-ActiveText::ContentTest: test_plain_text_conversion
----------------------------------------------------
-  (0.0ms) rollback transaction
-  (0.1ms) begin transaction
----------------------------------------------------
-ActiveText::ContentTest: test_plain_text_conversion
----------------------------------------------------
-  (0.1ms) rollback transaction
-  (0.1ms) begin transaction
----------------------------------------------------
-ActiveText::ContentTest: test_plain_text_conversion
----------------------------------------------------
-  (0.0ms) rollback transaction
diff --git a/test/unit/content_test.rb b/test/unit/content_test.rb
index 48ba731597..5299ae3f8f 100644
--- a/test/unit/content_test.rb
+++ b/test/unit/content_test.rb
@@ -3,8 +3,8 @@ require_relative '../test_helper'
module ActiveText
class ContentTest < ActiveSupport::TestCase
test "plain text conversion" do
- content = ActiveText::Content.new("<h1>Hello world</h1>")
- assert "Hello world", content.to_plain_text
+ message = Message.create!(subject: "Greetings", content: "<h1>Hello world</h1>")
+ assert_equal "Hello world", message.content.to_plain_text
end
end
end