diff --git a/test/debug.log b/test/debug.log index 78e206d..049a720 100644 --- a/test/debug.log +++ b/test/debug.log @@ -114,3 +114,287 @@ SQL (0.4ms) SELECT version FROM "schema_migrations" ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (2.3ms) DROP TABLE "users" + SQL (1.2ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.0ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.4ms) SELECT version FROM "schema_migrations" + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.3ms) DROP TABLE "users" + SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.9ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (308.6ms) DROP TABLE "users" + SQL (1.5ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.2ms) DROP TABLE "posts" + SQL (1.2ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.5ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1) + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3) + ExistentialTest::User Load (0.3ms) SELECT * FROM "users"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.6ms) DROP TABLE "users" + SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.0ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Create (0.7ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1) + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3) + ExistentialTest::User Load (0.4ms) SELECT * FROM "users"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.4ms) DROP TABLE "users" + SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.0ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.5ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1) + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL) + ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (182.2ms) DROP TABLE "users" + SQL (1.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.3ms) DROP TABLE "posts" + SQL (1.3ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM "schema_migrations" + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.4ms) DROP TABLE "users" + SQL (0.8ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.9ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1) + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3) + ExistentialTest::User Load (0.3ms) SELECT * FROM "users"  + ExistentialTest::User Load (0.3ms) SELECT * FROM "users"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.3ms) DROP TABLE "users" + SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.0ms) DROP TABLE "posts" + SQL (0.8ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1 + ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 2 + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.4ms) DROP TABLE "users" + SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.9ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts"  + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1 + ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 2 + ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts"  + ExistentialTest::Post Destroy (0.2ms) DELETE FROM "posts" WHERE "id" = 1 + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Load (0.3ms) SELECT * FROM "users"  + ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.5ms) DROP TABLE "users" + SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.0ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts"  + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1 + ExistentialTest::User Destroy (0.5ms) DELETE FROM "users" WHERE "id" = 2 + ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts"  + ExistentialTest::Post Destroy (0.2ms) DELETE FROM "posts" WHERE "id" = 1 + ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred') + ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES('bob') + ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3) + ExistentialTest::User Load (0.2ms) SELECT * FROM "users"  + ExistentialTest::Post Load (0.3ms) SELECT * FROM "posts"  + SQL (0.2ms) select sqlite_version(*) + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.3ms) DROP TABLE "users" + SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))  + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.9ms) DROP TABLE "posts" + SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255))  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + diff --git a/test/existential_plugin.sqlite3 b/test/existential_plugin.sqlite3 index 508be86..a9f47cc 100644 Binary files a/test/existential_plugin.sqlite3 and b/test/existential_plugin.sqlite3 differ diff --git a/test/existential_test.rb b/test/existential_test.rb index e956c5b..2d4e010 100644 --- a/test/existential_test.rb +++ b/test/existential_test.rb @@ -5,14 +5,35 @@ class ExistentialTest < Test::Unit::TestCase load_schema class User < ActiveRecord::Base + is_existential end class Post < ActiveRecord::Base + def allows_edit_for?(user) + if self.user_id == user.id + true + else + false + end + end + end + + def setup + User.destroy_all + Post.destroy_all + @user = User.create(:name => "fred") + @other_guy = User.create(:name => "bob") + @post = Post.create(:name => "lolz", :user_id => @user.id) end def test_schema_loaded_correctly - assert_equal [], User.all - assert_equal [], Post.all + assert_equal 2, User.all.length + assert_equal 1, Post.all.length + end + + def test_post_authorization + assert_false @fred.can?(:edit, @post) + assert @bob.can?(:edit, @post) end