alchemy_cms 2.7.3 → 2.7.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c1712ce9ba3131c3371c70272b7db7d6c4c1841
4
- data.tar.gz: 5c448ca386ced2c678073043337dd5bc9c07ca75
3
+ metadata.gz: ec39e6f9f8433170bdf6cfa12566eded64cc8970
4
+ data.tar.gz: 79ae67d762d97a743c584a0bd5e1d2df47ff56a0
5
5
  SHA512:
6
- metadata.gz: ccf13a66d86c853cde47712863466b0652adebd807c917b1b5c0f2709eb92e467f0b1fdf23d6e2e3d89c7a8cb697628c7341adfa47f2d88991060e6073b8fe05
7
- data.tar.gz: 7356a7ee68fef0e7c8c8344fc7e8ed3c1ee252631bda7604f586017f7e8a13455df55cdaecb38a451b91f578a3dc41710cb68c34023976961a187a91f04c0956
6
+ metadata.gz: 36f7ce8de540fdb2d2830be679ac0215e6d16115342653ad83cb8ae84a0589d3b78b3e46d01ad3da7c413bb6cd4a78d6d326402a4e2001e57515510c7e6ba304
7
+ data.tar.gz: 3c1d7a9aab4b031126c5113deb889d7f7c12ac54e2d22e422bb0761bb7538f914a7b7983df534bb0ed454d4b9f460e518dfb24ca70a548e2da0639bbb721ae4d
data/Gemfile CHANGED
@@ -14,6 +14,8 @@ gem 'sqlite3' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
14
14
  gem 'mysql2' if ENV['DB'] == 'mysql'
15
15
  gem 'pg' if ENV['DB'] == 'postgresql'
16
16
 
17
+ gem 'database_cleaner'
18
+
17
19
  unless ENV['CI']
18
20
  gem 'pry'
19
21
  gem 'quiet_assets' # Mute assets loggin
@@ -23,7 +25,6 @@ end
23
25
  group :test do
24
26
  unless ENV['FAST_SPECS']
25
27
  gem 'poltergeist'
26
- gem 'connection_pool' # https://gist.github.com/mperham/3049152
27
28
  unless ENV['CI']
28
29
  gem 'launchy'
29
30
  end
@@ -6,7 +6,7 @@ $('#element_<%= @element.id %>').hide(200, function() {
6
6
  $('#element_trash_button .icon').addClass('full');
7
7
  Alchemy.PreviewWindow.refresh();
8
8
  <% @element.contents.essence_richtexts.each do |content| %>
9
- tinymce.get('contents_content_<%= content.id %>_body').remove();
9
+ tinymce.get('tinymce_<%= content.id %>').remove();
10
10
  <% end %>
11
11
  <%= update_essence_select_elements(@page, @element) -%>
12
12
  });
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
- VERSION = "2.7.3"
2
+ VERSION = "2.7.4"
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'element create feature', js: true do
4
+ let(:a_page) { FactoryGirl.create(:page) }
5
+
6
+ before do
7
+ authorize_as_admin
8
+ visit edit_admin_page_path(a_page)
9
+ expect(page).to have_no_selector('.alchemy-elements-window .element_editor')
10
+ end
11
+
12
+ it "adds a new element to the list" do
13
+ create_element!
14
+ expect(page).to have_no_selector(".spinner") # wait until spinner disappears
15
+ expect(page).to have_selector(".element_editor", count: 1)
16
+ end
17
+ end
18
+
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe "element trash feature", js: true do
4
+ let(:a_page) { FactoryGirl.create(:page) }
5
+
6
+ before do
7
+ authorize_as_admin
8
+ visit edit_admin_page_path(a_page)
9
+ create_element! # We want to trash an article element later because it contains a richtext essence
10
+ expect(page).to have_no_selector(".spinner") # wait until spinner disappears
11
+ end
12
+
13
+ it "removes an element from the list" do
14
+ expect(page).to have_selector(".element_editor", count: 1)
15
+ within ".alchemy-elements-window .element_editor:first" do
16
+ click_link Alchemy::I18n.t("trash element")
17
+ end
18
+ expect(page).to have_content Alchemy::I18n.t('Element trashed')
19
+ expect(page).to have_no_selector(".element_editor")
20
+ end
21
+ end
@@ -33,6 +33,11 @@ Capybara.default_selector = :css
33
33
  Capybara.register_driver(:rack_test_translated_header) do |app|
34
34
  Capybara::RackTest::Driver.new(app, :headers => { 'HTTP_ACCEPT_LANGUAGE' => 'de' })
35
35
  end
36
+ if ENV['CI']
37
+ Capybara.register_driver :poltergeist do |app|
38
+ Capybara::Poltergeist::Driver.new(app, timeout: 60)
39
+ end
40
+ end
36
41
  Capybara.javascript_driver = :poltergeist
37
42
 
38
43
  # Load support files
@@ -48,15 +53,32 @@ RSpec.configure do |config|
48
53
  config.include Devise::TestHelpers, :type => :controller
49
54
  config.include Alchemy::Specs::ControllerHelpers, :type => :controller
50
55
  config.include Alchemy::Specs::IntegrationHelpers, :type => :feature
51
- config.use_transactional_fixtures = true
52
- # Make sure the database is clean and ready for test
56
+ config.use_transactional_fixtures = false
57
+
53
58
  config.before(:suite) do
54
- truncate_all_tables
59
+ DatabaseCleaner.clean_with(:truncation)
55
60
  Alchemy::Seeder.seed!
56
61
  end
57
- # Ensuring that the locale is always resetted to :en before running any tests
62
+
63
+ # All specs are running in transactions, but feature specs not.
58
64
  config.before(:each) do
59
65
  Alchemy::Site.current = nil
60
66
  ::I18n.locale = :en
67
+ if example.metadata[:type] == :feature
68
+ DatabaseCleaner.strategy = :truncation
69
+ else
70
+ DatabaseCleaner.strategy = :transaction
71
+ end
72
+ DatabaseCleaner.start
73
+ end
74
+
75
+ # After each spec the database gets cleaned. (via rollback or truncate for feature specs)
76
+ # After every feature spec the database gets seeded so the next spec can rely on that data.
77
+ config.append_after(:each) do
78
+ DatabaseCleaner.clean
79
+ if example.metadata[:type] == :feature
80
+ Alchemy::Seeder.stub(:puts)
81
+ Alchemy::Seeder.seed!
82
+ end
61
83
  end
62
84
  end
@@ -60,6 +60,20 @@ module Alchemy
60
60
  FactoryGirl.create(:admin_user)
61
61
  end
62
62
 
63
+ # Capybara actions to create a new element.
64
+ #
65
+ # You can pass the name of the desired element, or just use the default "Article".
66
+ #
67
+ def create_element!(name = 'Article')
68
+ within '.alchemy-elements-window' do
69
+ click_link Alchemy::I18n.t('New Element')
70
+ end
71
+ within '.new_alchemy_element' do
72
+ select(name, from: 'element[name]')
73
+ click_button 'Add'
74
+ end
75
+ end
76
+
63
77
  end
64
78
 
65
79
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.3
4
+ version: 2.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-04-23 00:00:00.000000000 Z
15
+ date: 2014-05-27 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -917,6 +917,8 @@ files:
917
917
  - spec/dummy/public/stylesheets/.gitkeep
918
918
  - spec/dummy/script/rails
919
919
  - spec/fast_specs.rb
920
+ - spec/features/admin/element_create_feature_spec.rb
921
+ - spec/features/admin/element_trash_feature_spec.rb
920
922
  - spec/features/admin/link_overlay_spec.rb
921
923
  - spec/features/admin/modules_integration_spec.rb
922
924
  - spec/features/admin/pages_controller_spec.rb
@@ -988,7 +990,6 @@ files:
988
990
  - spec/support/alchemy/controller_hacks.rb
989
991
  - spec/support/alchemy/controller_helpers.rb
990
992
  - spec/support/alchemy/integration_helpers.rb
991
- - spec/support/alchemy/test_tweaks.rb
992
993
  - spec/support/ci/install_phantomjs
993
994
  - spec/support/factories.rb
994
995
  - spec/support/image with spaces.png
@@ -1209,6 +1210,8 @@ test_files:
1209
1210
  - spec/dummy/public/stylesheets/.gitkeep
1210
1211
  - spec/dummy/script/rails
1211
1212
  - spec/fast_specs.rb
1213
+ - spec/features/admin/element_create_feature_spec.rb
1214
+ - spec/features/admin/element_trash_feature_spec.rb
1212
1215
  - spec/features/admin/link_overlay_spec.rb
1213
1216
  - spec/features/admin/modules_integration_spec.rb
1214
1217
  - spec/features/admin/pages_controller_spec.rb
@@ -1280,7 +1283,6 @@ test_files:
1280
1283
  - spec/support/alchemy/controller_hacks.rb
1281
1284
  - spec/support/alchemy/controller_helpers.rb
1282
1285
  - spec/support/alchemy/integration_helpers.rb
1283
- - spec/support/alchemy/test_tweaks.rb
1284
1286
  - spec/support/ci/install_phantomjs
1285
1287
  - spec/support/factories.rb
1286
1288
  - spec/support/image with spaces.png
@@ -1,31 +0,0 @@
1
- # https://gist.github.com/mperham/3049152
2
- # Fixes Capybara database connection issues
3
- class ActiveRecord::Base
4
- mattr_accessor :shared_connection
5
- @@shared_connection = nil
6
-
7
- def self.connection
8
- @@shared_connection || ConnectionPool::Wrapper.new(:size => 1) { retrieve_connection }
9
- end
10
- end
11
- ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
12
-
13
- # fast truncation of all tables that need truncations (select is 10x faster then truncate)
14
- # http://grosser.it/2012/07/03/rubyactiverecord-fastest-way-to-truncate-test-database/
15
- def truncate_all_tables
16
- config = ActiveRecord::Base.configurations[::Rails.env]
17
- connection = ActiveRecord::Base.connection
18
- connection.disable_referential_integrity do
19
- connection.tables.each do |table_name|
20
- next if connection.select_value("SELECT count(*) FROM #{table_name}") == 0
21
- case config["adapter"]
22
- when "mysql2", "postgresql"
23
- connection.execute("TRUNCATE #{table_name}")
24
- when "sqlite3"
25
- connection.execute("DELETE FROM #{table_name}")
26
- connection.execute("DELETE FROM sqlite_sequence where name='#{table_name}'")
27
- end
28
- end
29
- connection.execute("VACUUM") if config["adapter"] == "sqlite3"
30
- end
31
- end