active_admin_editor 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. data/README.md +2 -2
  2. data/app/assets/javascripts/active_admin/editor/config.js.erb +6 -6
  3. data/app/assets/javascripts/active_admin/editor/editor.js +31 -1
  4. data/app/assets/stylesheets/active_admin/editor.css.scss +7 -1
  5. data/lib/active_admin/editor/engine.rb +5 -1
  6. data/lib/active_admin/editor/policy.rb +36 -3
  7. data/lib/active_admin/editor/version.rb +1 -1
  8. data/spec/dummy/db/development.sqlite3 +0 -0
  9. data/spec/dummy/db/test.sqlite3 +0 -0
  10. data/spec/dummy/log/development.log +3645 -0
  11. data/spec/dummy/log/test.log +187 -0
  12. data/spec/dummy/tmp/cache/assets/C17/7E0/sprockets%2F10282a65710402dd907a870692e08e54 +0 -0
  13. data/spec/dummy/tmp/cache/assets/C4C/360/sprockets%2F72117b2727aba75092e90773336f414e +0 -0
  14. data/spec/dummy/tmp/cache/assets/C55/FB0/sprockets%2F12d25fa97a62a49735017b39155987e0 +0 -0
  15. data/spec/dummy/tmp/cache/assets/C62/EB0/sprockets%2F11e66b9d26e35c6644e690739d767108 +0 -0
  16. data/spec/dummy/tmp/cache/assets/C7A/500/sprockets%2F1f1d4d009502fd535845b5459a83f340 +0 -0
  17. data/spec/dummy/tmp/cache/assets/C7E/A00/sprockets%2F792b6f07a3b1f6e7f7020544633d6163 +0 -0
  18. data/spec/dummy/tmp/cache/assets/C81/E20/sprockets%2F0b927ca32a706e522c5958878d7145a1 +0 -0
  19. data/spec/dummy/tmp/cache/assets/C8D/BD0/sprockets%2Fb7f30a05e9483519378748810c6b57ec +0 -0
  20. data/spec/dummy/tmp/cache/assets/C8F/100/sprockets%2F43f25b46ba5b45b6886d5672d5163797 +0 -0
  21. data/spec/dummy/tmp/cache/assets/C8F/A90/sprockets%2Fe0822e193e6459516173437bfb58e9e4 +0 -0
  22. data/spec/dummy/tmp/cache/assets/C9D/E70/sprockets%2F4a5d05f556354e305a5184b065c62ac0 +0 -0
  23. data/spec/dummy/tmp/cache/assets/C9F/170/sprockets%2F5d65e155aad3374ae12771242be22580 +0 -0
  24. data/spec/dummy/tmp/cache/assets/CB0/480/sprockets%2F770d002c3b3fb7a27d7862f788702a91 +0 -0
  25. data/spec/dummy/tmp/cache/assets/CB2/5A0/sprockets%2F4e7c202a6f2335881a86d6fc17329d08 +0 -0
  26. data/spec/dummy/tmp/cache/assets/CB7/160/sprockets%2F9b2ab958728324ca63e77600c53e934e +0 -0
  27. data/spec/dummy/tmp/cache/assets/CB9/DD0/sprockets%2F9a98237d5685b667db2a33618814bb0f +0 -0
  28. data/spec/dummy/tmp/cache/assets/CB9/F00/sprockets%2F1c8ee45e33fe3869b7816f065d436211 +0 -0
  29. data/spec/dummy/tmp/cache/assets/CC0/C40/sprockets%2Fb9b025b364f1e8a976f719877b2148c5 +0 -0
  30. data/spec/dummy/tmp/cache/assets/CC3/E30/sprockets%2F0911249a810f39f82185eef9e0959a9d +0 -0
  31. data/spec/dummy/tmp/cache/assets/CC7/830/sprockets%2F10abd9e76d16838868b873632597e4eb +0 -0
  32. data/spec/dummy/tmp/cache/assets/CCB/120/sprockets%2Fb9500896df13a12225b836bda0b7320e +0 -0
  33. data/spec/dummy/tmp/cache/assets/CCD/EC0/sprockets%2F9694fc1ad28709775e7a7f82369ed721 +0 -0
  34. data/spec/dummy/tmp/cache/assets/CD0/700/sprockets%2Fdc3734f11ba280c185739b830aa017c9 +0 -0
  35. data/spec/dummy/tmp/cache/assets/CD1/ED0/sprockets%2F242b4a53a4a4446f07c4a0e04e77847b +0 -0
  36. data/spec/dummy/tmp/cache/assets/CD6/810/sprockets%2F901ca591b49d076903b08128b26cbdb7 +0 -0
  37. data/spec/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385 +0 -0
  38. data/spec/dummy/tmp/cache/assets/CE6/1E0/sprockets%2F9d6376fa4901aca377072de2a29e9455 +0 -0
  39. data/spec/dummy/tmp/cache/assets/CF1/0A0/sprockets%2Ff258b9f7ff79b17799a1014d71d41c64 +0 -0
  40. data/spec/dummy/tmp/cache/assets/CF4/BB0/sprockets%2Fd2509ee195cff97ad94e74257853b064 +0 -0
  41. data/spec/dummy/tmp/cache/assets/D00/490/sprockets%2F60ff8fc770f770b47a563e8cd4696994 +0 -0
  42. data/spec/dummy/tmp/cache/assets/D03/CD0/sprockets%2Ff025a9441aa20929b3175d8d6ab3c18e +0 -0
  43. data/spec/dummy/tmp/cache/assets/D09/1E0/sprockets%2F1275ff2f505dc32c9715eb4bc33b0379 +0 -0
  44. data/spec/dummy/tmp/cache/assets/D10/420/sprockets%2Fa4dc298af1d087c33871f077b0f16f17 +0 -0
  45. data/spec/dummy/tmp/cache/assets/D23/ED0/sprockets%2F77308cdf3281f5ef8b5d188bf8e74036 +0 -0
  46. data/spec/dummy/tmp/cache/assets/D2E/800/sprockets%2F4f418afd1d357065fa7bb580041a28aa +0 -0
  47. data/spec/dummy/tmp/cache/assets/D34/C90/sprockets%2Fda1e05e39683311b61cb095c6c2fdd63 +0 -0
  48. data/spec/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db +0 -0
  49. data/spec/dummy/tmp/cache/assets/D39/DF0/sprockets%2F1351e4754ff46cdca7cc05f72a1f1780 +0 -0
  50. data/spec/dummy/tmp/cache/assets/D3A/B20/sprockets%2F536a8c3e16caff754bd9a9216f51e101 +0 -0
  51. data/spec/dummy/tmp/cache/assets/D3D/180/sprockets%2F61f024e7e555c8f3ce3f3401efd22c92 +0 -0
  52. data/spec/dummy/tmp/cache/assets/D3D/E80/sprockets%2F4bcb20ff58693fa41b8729a79400dcb3 +0 -0
  53. data/spec/dummy/tmp/cache/assets/D41/2F0/sprockets%2Fe5d704d8dc364cb7e3e822bb4e253916 +0 -0
  54. data/spec/dummy/tmp/cache/assets/D46/3F0/sprockets%2F45e4032f9ee82213f32b98dae1e859cc +0 -0
  55. data/spec/dummy/tmp/cache/assets/D48/170/sprockets%2Fbc5e81bc580d8c262d3e9d7e984051b7 +0 -0
  56. data/spec/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24 +0 -0
  57. data/spec/dummy/tmp/cache/assets/D4E/8C0/sprockets%2Ffa56f431b696af04ff09e2d98e286e32 +0 -0
  58. data/spec/dummy/tmp/cache/assets/D53/0B0/sprockets%2F4b2b0082dbfd4ae3f0af30c22612865c +0 -0
  59. data/spec/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461 +0 -0
  60. data/spec/dummy/tmp/cache/assets/D5F/930/sprockets%2F0611d8badac9f948b70aaa227109bb29 +0 -0
  61. data/spec/dummy/tmp/cache/assets/D68/3E0/sprockets%2Fa87c537cb34e21491d122cb56eef5f0d +0 -0
  62. data/spec/dummy/tmp/cache/assets/D6D/D50/sprockets%2F5f714d8ac21433fbd3d570f0feee1963 +0 -0
  63. data/spec/dummy/tmp/cache/assets/D6D/FA0/sprockets%2Fa1bbb309c8c629a282e3f4f9ad3d4961 +0 -0
  64. data/spec/dummy/tmp/cache/assets/D71/A00/sprockets%2F26b65eb6806e407ba2bf573d8e09cfe1 +0 -0
  65. data/spec/dummy/tmp/cache/assets/D72/9D0/sprockets%2Fdafb56b16522a94a679e5e35ff1f8b12 +0 -0
  66. data/spec/dummy/tmp/cache/assets/D76/730/sprockets%2Fd1699d0cbcfe965c5c51a95e31580df2 +0 -0
  67. data/spec/dummy/tmp/cache/assets/D79/890/sprockets%2F48245259266fbda2cbb676f6f8a91dae +0 -0
  68. data/spec/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a +0 -0
  69. data/spec/dummy/tmp/cache/assets/D98/730/sprockets%2Ffd9f244a7c80c2a1fa3524c8c8ddd062 +0 -0
  70. data/spec/dummy/tmp/cache/assets/DA7/CD0/sprockets%2F63efd46c5c9b462b90a52bdfbf25b779 +0 -0
  71. data/spec/dummy/tmp/cache/assets/DB2/600/sprockets%2F259b3674b88b07de68cbbed378a6c7ef +0 -0
  72. data/spec/dummy/tmp/cache/assets/DBA/6B0/sprockets%2F4acc06bba5e909e9aab90dab06b19503 +0 -0
  73. data/spec/dummy/tmp/cache/assets/DBF/0B0/sprockets%2F1aacf4a74e2d4d026ee99e320d5b03ec +0 -0
  74. data/spec/dummy/tmp/cache/assets/DC5/910/sprockets%2F9afa316098cef0a0bdd49b93caa057f2 +0 -0
  75. data/spec/dummy/tmp/cache/assets/DC7/910/sprockets%2F2e0f4a207227a5eebebd5b8c444d76ed +0 -0
  76. data/spec/dummy/tmp/cache/assets/DCA/2F0/sprockets%2F475cfabab42f92fbe50f2d04752d8d5c +0 -0
  77. data/spec/dummy/tmp/cache/assets/DCE/D40/sprockets%2F3c3feb2b696842feaff8cf3264c103ae +0 -0
  78. data/spec/dummy/tmp/cache/assets/DD5/C40/sprockets%2F7c17ce947d82be9ccfd0af20ea78930c +0 -0
  79. data/spec/dummy/tmp/cache/assets/DD7/DF0/sprockets%2F576e95c3fa26b1c4fa2ab62efdef4894 +0 -0
  80. data/spec/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb +0 -0
  81. data/spec/dummy/tmp/cache/assets/DF4/CB0/sprockets%2F50c79ab150d98daf2d8b0d03baffdb47 +0 -0
  82. data/spec/dummy/tmp/cache/assets/E0A/D60/sprockets%2Fc7e9f2f9555aafbec9bea658c1d6a047 +0 -0
  83. data/spec/dummy/tmp/cache/assets/E0D/340/sprockets%2Ffd1a919b3fcbf5838bfd543d2ced9f47 +0 -0
  84. data/spec/dummy/tmp/cache/assets/E2E/CD0/sprockets%2Fb7a4e9baedef6f6e60234cb94cd0d83a +0 -0
  85. data/spec/dummy/tmp/cache/assets/E3B/4F0/sprockets%2Fe52b61cae0b3e9ecd57a884f7eefe85b +0 -0
  86. data/spec/dummy/tmp/cache/assets/E54/600/sprockets%2Fec46dd83126fcd2afef6ac23c2c6cc1e +0 -0
  87. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/_base.css.scssc +0 -0
  88. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/_forms.css.scssc +0 -0
  89. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/_header.css.scssc +0 -0
  90. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/_mixins.css.scssc +0 -0
  91. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/_typography.css.scssc +0 -0
  92. data/spec/dummy/tmp/cache/sass/0b728c6412c3ae2714d00cd8348a3fb5087889d5/print.css.scssc +0 -0
  93. data/spec/dummy/tmp/cache/sass/1254828c3b4a7f5ff31b40efac1d40f2a3a7d396/_dashboard.scssc +0 -0
  94. data/spec/dummy/tmp/cache/sass/1254828c3b4a7f5ff31b40efac1d40f2a3a7d396/_logged_out.scssc +0 -0
  95. data/spec/dummy/tmp/cache/sass/246f03f113f015210051caecb6aa686d7920f157/_footer.scssc +0 -0
  96. data/spec/dummy/tmp/cache/sass/246f03f113f015210051caecb6aa686d7920f157/_main_structure.scssc +0 -0
  97. data/spec/dummy/tmp/cache/sass/246f03f113f015210051caecb6aa686d7920f157/_title_bar.scssc +0 -0
  98. data/spec/dummy/tmp/cache/sass/81344752c8bed34a2e2b1a10124f3a9949022145/editor.css.scssc +0 -0
  99. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_all.css.scssc +0 -0
  100. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_buttons.css.scssc +0 -0
  101. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_gradients.css.scssc +0 -0
  102. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_icons.css.scssc +0 -0
  103. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_reset.css.scssc +0 -0
  104. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_rounded.css.scssc +0 -0
  105. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_sections.css.scssc +0 -0
  106. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_shadows.css.scssc +0 -0
  107. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_typography.scssc +0 -0
  108. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_utilities.scssc +0 -0
  109. data/spec/dummy/tmp/cache/sass/c77126dc59079a69e629fdbd347d7f91e2a5b93a/_variables.css.scssc +0 -0
  110. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_batch_actions.css.scssc +0 -0
  111. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_blank_slates.scssc +0 -0
  112. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_breadcrumbs.scssc +0 -0
  113. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_buttons.scssc +0 -0
  114. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_columns.scssc +0 -0
  115. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_comments.css.scssc +0 -0
  116. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_date_picker.css.scssc +0 -0
  117. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_dropdown_menu.scssc +0 -0
  118. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_flash_messages.css.scssc +0 -0
  119. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_grid.scssc +0 -0
  120. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_links.scssc +0 -0
  121. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_pagination.scssc +0 -0
  122. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_panels.scssc +0 -0
  123. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_popovers.css.scssc +0 -0
  124. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_scopes.scssc +0 -0
  125. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_status_tags.scssc +0 -0
  126. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_table_tools.css.scssc +0 -0
  127. data/spec/dummy/tmp/cache/sass/fe3083162abef0db184b67ee2149d9ee6942c91f/_tables.css.scssc +0 -0
  128. data/spec/javascripts/editor_spec.js +30 -4
  129. data/spec/lib/policy_spec.rb +2 -0
  130. metadata +152 -6
  131. data/spec/dummy/app/admin/dashboards.rb +0 -44
@@ -2814,3 +2814,190 @@ Completed 200 OK in 42ms (Views: 41.3ms | ActiveRecord: 0.0ms)
2814
2814
   (2.4ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2815
2815
   (2.4ms) DELETE FROM "pages";
2816
2816
   (0.1ms) DELETE FROM sqlite_sequence where name = 'pages';
2817
+ Connecting to database specified by database.yml
2818
+  (4.1ms) DELETE FROM "active_admin_comments";
2819
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2820
+  (2.8ms) DELETE FROM "admin_users";
2821
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2822
+  (2.5ms) DELETE FROM "pages";
2823
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'pages';
2824
+  (0.1ms) begin transaction
2825
+  (0.0ms) rollback transaction
2826
+  (0.0ms) begin transaction
2827
+  (0.0ms) rollback transaction
2828
+  (0.0ms) begin transaction
2829
+  (0.0ms) rollback transaction
2830
+  (0.0ms) begin transaction
2831
+  (0.0ms) rollback transaction
2832
+ Connecting to database specified by database.yml
2833
+  (57.1ms) DELETE FROM "active_admin_comments";
2834
+  (0.3ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2835
+  (3.4ms) DELETE FROM "admin_users";
2836
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2837
+  (3.0ms) DELETE FROM "pages";
2838
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'pages';
2839
+  (0.1ms) begin transaction
2840
+  (0.0ms) rollback transaction
2841
+  (0.0ms) begin transaction
2842
+  (0.0ms) rollback transaction
2843
+  (0.0ms) begin transaction
2844
+  (0.0ms) rollback transaction
2845
+  (0.0ms) begin transaction
2846
+  (0.0ms) rollback transaction
2847
+ Connecting to database specified by database.yml
2848
+  (4.3ms) DELETE FROM "active_admin_comments";
2849
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2850
+  (2.7ms) DELETE FROM "admin_users";
2851
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2852
+  (2.5ms) DELETE FROM "pages";
2853
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'pages';
2854
+  (0.0ms) begin transaction
2855
+  (0.0ms) rollback transaction
2856
+  (0.0ms) begin transaction
2857
+  (0.0ms) rollback transaction
2858
+  (0.0ms) begin transaction
2859
+  (0.0ms) rollback transaction
2860
+  (0.0ms) begin transaction
2861
+  (0.0ms) rollback transaction
2862
+ Connecting to database specified by database.yml
2863
+  (55.6ms) DELETE FROM "active_admin_comments";
2864
+  (0.3ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2865
+  (3.4ms) DELETE FROM "admin_users";
2866
+  (0.7ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2867
+  (2.9ms) DELETE FROM "pages";
2868
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'pages';
2869
+  (0.1ms) begin transaction
2870
+  (0.1ms) rollback transaction
2871
+  (0.0ms) begin transaction
2872
+  (0.0ms) rollback transaction
2873
+  (0.0ms) begin transaction
2874
+  (0.0ms) rollback transaction
2875
+  (0.0ms) begin transaction
2876
+  (0.0ms) rollback transaction
2877
+ Connecting to database specified by database.yml
2878
+  (4.4ms) DELETE FROM "active_admin_comments";
2879
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2880
+  (3.0ms) DELETE FROM "admin_users";
2881
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2882
+  (2.6ms) DELETE FROM "pages";
2883
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'pages';
2884
+  (0.0ms) begin transaction
2885
+ AdminUser Exists (2.2ms) SELECT 1 AS one FROM "admin_users" WHERE "admin_users"."email" = 'email1@factory.com' LIMIT 1
2886
+ Binary data inserted for `string` type on column `encrypted_password`
2887
+ SQL (21.5ms) INSERT INTO "admin_users" ("created_at", "current_sign_in_at", "current_sign_in_ip", "email", "encrypted_password", "last_sign_in_at", "last_sign_in_ip", "remember_created_at", "reset_password_sent_at", "reset_password_token", "sign_in_count", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["created_at", Sat, 29 Dec 2012 11:26:55 UTC +00:00], ["current_sign_in_at", nil], ["current_sign_in_ip", nil], ["email", "email1@factory.com"], ["encrypted_password", "$2a$04$D9J2jOiTe1jWyHtbQVrnnOpt8oImA96GmVxqD7A8YNAegZ9KVokwC"], ["last_sign_in_at", nil], ["last_sign_in_ip", nil], ["remember_created_at", nil], ["reset_password_sent_at", nil], ["reset_password_token", nil], ["sign_in_count", 0], ["updated_at", Sat, 29 Dec 2012 11:26:55 UTC +00:00]]
2888
+  (3.4ms) commit transaction
2889
+ Started GET "/admin/login" for 127.0.0.1 at 2012-12-29 03:26:58 -0800
2890
+ Processing by ActiveAdmin::Devise::SessionsController#new as HTML
2891
+ Rendered /Users/ejholmes/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activeadmin-0.5.1/app/views/active_admin/devise/shared/_links.erb (3.2ms)
2892
+ Rendered /Users/ejholmes/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activeadmin-0.5.1/app/views/active_admin/devise/sessions/new.html.erb within layouts/active_admin_logged_out (552.0ms)
2893
+ Completed 200 OK in 602ms (Views: 600.2ms | ActiveRecord: 0.0ms)
2894
+ Started GET "/assets/active_admin.css" for 127.0.0.1 at 2012-12-29 03:26:58 -0800
2895
+ Compiled active_admin.css (1644ms) (pid 8600)
2896
+ Served asset /active_admin.css - 200 OK (1662ms)
2897
+ Started GET "/assets/active_admin/editor/wysiwyg.css" for 127.0.0.1 at 2012-12-29 03:27:00 -0800
2898
+ Compiled active_admin/editor/wysiwyg.css (0ms) (pid 8600)
2899
+ Served asset /active_admin/editor/wysiwyg.css - 200 OK (8ms)
2900
+ Started GET "/assets/active_admin/editor.css" for 127.0.0.1 at 2012-12-29 03:27:00 -0800
2901
+ Compiled active_admin/editor.css (833ms) (pid 8600)
2902
+ Served asset /active_admin/editor.css - 200 OK (918ms)
2903
+ Started GET "/assets/active_admin.js" for 127.0.0.1 at 2012-12-29 03:27:01 -0800
2904
+ Compiled jquery.js (2ms) (pid 8600)
2905
+ Compiled jquery-ui.js (5ms) (pid 8600)
2906
+ Compiled jquery_ujs.js (0ms) (pid 8600)
2907
+ Compiled active_admin/lib/namespace.js (127ms) (pid 8600)
2908
+ Compiled active_admin/components/jquery.aa.checkbox-toggler.js (139ms) (pid 8600)
2909
+ Compiled active_admin/components/jquery.aa.dropdown-menu.js (143ms) (pid 8600)
2910
+ Compiled active_admin/components/jquery.aa.popover.js (140ms) (pid 8600)
2911
+ Compiled active_admin/components/jquery.aa.table-checkbox-toggler.js (122ms) (pid 8600)
2912
+ Compiled active_admin/pages/application.js (120ms) (pid 8600)
2913
+ Compiled active_admin/pages/batch_actions.js (139ms) (pid 8600)
2914
+ Compiled active_admin/application.js (997ms) (pid 8600)
2915
+ Compiled active_admin/base.js (1063ms) (pid 8600)
2916
+ Compiled active_admin.js (1081ms) (pid 8600)
2917
+ Served asset /active_admin.js - 200 OK (1101ms)
2918
+ Started GET "/assets/active_admin/editor.js" for 127.0.0.1 at 2012-12-29 03:27:02 -0800
2919
+ Compiled wysihtml5.js (3ms) (pid 8600)
2920
+ Compiled active_admin/editor/templates/toolbar.js (0ms) (pid 8600)
2921
+ Compiled active_admin/editor/templates/uploader.js (0ms) (pid 8600)
2922
+ Compiled active_admin/editor/editor.js (22ms) (pid 8600)
2923
+ Compiled active_admin/editor/config.js (2ms) (pid 8600)
2924
+ Compiled active_admin/editor/parser_rules.js (0ms) (pid 8600)
2925
+ Compiled active_admin/editor.js (95ms) (pid 8600)
2926
+ Served asset /active_admin/editor.js - 200 OK (151ms)
2927
+ Started GET "/assets/active_admin/print.css" for 127.0.0.1 at 2012-12-29 03:27:02 -0800
2928
+ Compiled active_admin/print.css (193ms) (pid 8600)
2929
+ Served asset /active_admin/print.css - 200 OK (237ms)
2930
+  (8.6ms) DELETE FROM "active_admin_comments";
2931
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2932
+  (5.4ms) DELETE FROM "admin_users";
2933
+  (4.9ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2934
+  (5.8ms) DELETE FROM "pages";
2935
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'pages';
2936
+  (0.1ms) begin transaction
2937
+ AdminUser Exists (0.2ms) SELECT 1 AS one FROM "admin_users" WHERE "admin_users"."email" = 'email2@factory.com' LIMIT 1
2938
+ Binary data inserted for `string` type on column `encrypted_password`
2939
+ SQL (0.7ms) INSERT INTO "admin_users" ("created_at", "current_sign_in_at", "current_sign_in_ip", "email", "encrypted_password", "last_sign_in_at", "last_sign_in_ip", "remember_created_at", "reset_password_sent_at", "reset_password_token", "sign_in_count", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["created_at", Sat, 29 Dec 2012 11:27:05 UTC +00:00], ["current_sign_in_at", nil], ["current_sign_in_ip", nil], ["email", "email2@factory.com"], ["encrypted_password", "$2a$04$Ud2Lb3Jz5K4CFG8w56D39urldDtjARQWTEiXbomQ7T4aRRwQmXqIi"], ["last_sign_in_at", nil], ["last_sign_in_ip", nil], ["remember_created_at", nil], ["reset_password_sent_at", nil], ["reset_password_token", nil], ["sign_in_count", 0], ["updated_at", Sat, 29 Dec 2012 11:27:05 UTC +00:00]]
2940
+  (3.0ms) commit transaction
2941
+ Started GET "/admin/login" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2942
+ Processing by ActiveAdmin::Devise::SessionsController#new as HTML
2943
+ Rendered /Users/ejholmes/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activeadmin-0.5.1/app/views/active_admin/devise/shared/_links.erb (0.6ms)
2944
+ Completed 200 OK in 23ms (Views: 22.4ms | ActiveRecord: 0.0ms)
2945
+ Started GET "/assets/active_admin.css" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2946
+ Served asset /active_admin.css - 200 OK (7ms)
2947
+ Started GET "/assets/active_admin/editor.css" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2948
+ Served asset /active_admin/editor.css - 200 OK (4ms)
2949
+ Started GET "/assets/active_admin/editor/wysiwyg.css" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2950
+ Served asset /active_admin/editor/wysiwyg.css - 200 OK (0ms)
2951
+ Started GET "/assets/active_admin/editor.js" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2952
+ Served asset /active_admin/editor.js - 200 OK (0ms)
2953
+ Started GET "/assets/active_admin.js" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2954
+ Served asset /active_admin.js - 200 OK (1ms)
2955
+ Started GET "/assets/active_admin/print.css" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2956
+ Served asset /active_admin/print.css - 200 OK (0ms)
2957
+ Started POST "/admin/login" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2958
+ Processing by ActiveAdmin::Devise::SessionsController#create as HTML
2959
+ Parameters: {"utf8"=>"✓", "admin_user"=>{"email"=>"email2@factory.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Login"}
2960
+ AdminUser Load (0.1ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."email" = 'email2@factory.com' LIMIT 1
2961
+  (0.0ms) begin transaction
2962
+  (0.3ms) UPDATE "admin_users" SET "last_sign_in_at" = '2012-12-29 11:27:05.509600', "current_sign_in_at" = '2012-12-29 11:27:05.509600', "last_sign_in_ip" = '127.0.0.1', "current_sign_in_ip" = '127.0.0.1', "sign_in_count" = 1, "updated_at" = '2012-12-29 11:27:05.510394' WHERE "admin_users"."id" = 1
2963
+  (2.7ms) commit transaction
2964
+ Redirected to http://127.0.0.1:58432/admin
2965
+ Completed 302 Found in 32ms (ActiveRecord: 0.0ms)
2966
+ Started GET "/admin" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2967
+ Processing by Admin::DashboardController#index as HTML
2968
+ AdminUser Load (0.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 LIMIT 1
2969
+ Completed 200 OK in 49ms (Views: 46.4ms | ActiveRecord: 0.2ms)
2970
+ Started GET "/admin/pages/new" for 127.0.0.1 at 2012-12-29 03:27:05 -0800
2971
+ Processing by Admin::PagesController#new as HTML
2972
+ AdminUser Load (0.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 LIMIT 1
2973
+ Completed 200 OK in 57ms (Views: 48.7ms | ActiveRecord: 0.2ms)
2974
+  (4.1ms) DELETE FROM "active_admin_comments";
2975
+  (0.2ms) DELETE FROM sqlite_sequence where name = 'active_admin_comments';
2976
+  (2.6ms) DELETE FROM "admin_users";
2977
+  (2.8ms) DELETE FROM sqlite_sequence where name = 'admin_users';
2978
+  (2.9ms) DELETE FROM "pages";
2979
+  (0.1ms) DELETE FROM sqlite_sequence where name = 'pages';
2980
+  (0.1ms) begin transaction
2981
+  (0.1ms) rollback transaction
2982
+  (0.1ms) begin transaction
2983
+  (0.0ms) rollback transaction
2984
+  (0.1ms) begin transaction
2985
+  (0.0ms) rollback transaction
2986
+  (0.0ms) begin transaction
2987
+  (0.0ms) rollback transaction
2988
+  (0.0ms) begin transaction
2989
+  (0.0ms) rollback transaction
2990
+  (0.0ms) begin transaction
2991
+  (0.0ms) rollback transaction
2992
+  (0.1ms) begin transaction
2993
+  (0.1ms) rollback transaction
2994
+  (0.0ms) begin transaction
2995
+  (0.0ms) rollback transaction
2996
+  (0.0ms) begin transaction
2997
+  (0.0ms) rollback transaction
2998
+  (0.0ms) begin transaction
2999
+  (0.0ms) rollback transaction
3000
+  (0.0ms) begin transaction
3001
+  (0.0ms) rollback transaction
3002
+  (0.0ms) begin transaction
3003
+  (0.0ms) rollback transaction
@@ -81,10 +81,6 @@ describe('Editor', function() {
81
81
  this.xhr.prototype.upload = { addEventListener: sinon.stub() }
82
82
  })
83
83
 
84
- it('returns an XMLHttpRequest', function() {
85
- expect(this.editor.upload(sinon.stub(), function() {})).to.be(XMLHttpRequest)
86
- })
87
-
88
84
  it('opens the connection to the proper bucket', function() {
89
85
  this.xhr.prototype.open = sinon.stub()
90
86
  this.xhr.prototype.send = sinon.stub()
@@ -99,6 +95,36 @@ describe('Editor', function() {
99
95
  expect(xhr.send).to.have.been.called
100
96
  })
101
97
 
98
+ describe('when the upload succeeds', function() {
99
+ it('calls the callback with the location', function(done) {
100
+ this.xhr.prototype.open = sinon.stub()
101
+ this.xhr.prototype.send = sinon.stub()
102
+ this.config.s3_bucket = 'bucket'
103
+ xhr = this.editor.upload(sinon.stub(), function(location) {
104
+ expect(location).to.eq('foo')
105
+ done()
106
+ })
107
+ xhr.getResponseHeader = sinon.stub().returns('foo')
108
+ xhr.readyState = 4
109
+ xhr.status = 204
110
+ xhr.onreadystatechange()
111
+ })
112
+ })
113
+
114
+ describe('when the upload fails', function() {
115
+ it('shows an alert', function() {
116
+ this.xhr.prototype.open = sinon.stub()
117
+ this.xhr.prototype.send = sinon.stub()
118
+ this.config.s3_bucket = 'bucket'
119
+ alert = sinon.stub()
120
+ xhr = this.editor.upload(sinon.stub(), function() {})
121
+ xhr.readyState = 4
122
+ xhr.status = 403
123
+ xhr.onreadystatechange()
124
+ expect(alert).to.have.been.calledWith('Failed to upload file. Have you configured S3 properly?')
125
+ })
126
+ })
127
+
102
128
  describe('form data', function() {
103
129
  beforeEach(function() {
104
130
  file = this.file = { name: 'foobar', type: 'image/jpg' }