mm-draft 0.1.10 → 0.1.11
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 +13 -5
- data/Gemfile +3 -4
- data/Rakefile +4 -12
- data/lib/mongo_mapper/plugins/draft/draft.rb +3 -12
- data/lib/mongo_mapper/plugins/draft/version.rb +1 -1
- data/test/performance/models/monkey_no_draft.rb +1 -1
- data/test/performance/performance_helper.rb +2 -2
- data/test/performance/test/read_write.rb +4 -3
- metadata +36 -16
- data/test/models/dog.rb +0 -11
- data/test/models/monkey.rb +0 -10
- data/test/test_helper.rb +0 -47
- data/test/unit/test_draft.rb +0 -226
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTdiMWNlNGY1Nzg0ZGFiNTE2ZTI0MzhhMzFhNjJkM2IxN2M4MjcwNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MWJmYmNlYWQ0ZWU1Y2YzZjFjN2VlMzZmM2JmZThjZmQyN2I0MTRhMg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZmUzMTVjMDBiMmI3NTllYTYxODc3MDVhZmVmODQzZjAzOTA5ZTc5OGYxMzhl
|
10
|
+
YmZiNGRkODI4M2QyZTA1MTJlZjE1YzAxMGI0MDFiMWRmNzQyOTI5ZmE1MDA5
|
11
|
+
ODNhMTAzNGFjNDNmNTNlMzg0MWYyZjhkNWI2MTUzYTI1ODQzMTY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjM3ODgyYmQ5YzE4ZjIxODAzMDIzZmJhOTFlNzUxNGRkMzMyZmI0ZjU2Y2I0
|
14
|
+
OWM4ODQzMGQ1MjAwNTc2NzExOWIxZjBlZmNlMmNlMTEwMjU4ZGI2MWZjYmY2
|
15
|
+
OGM1ZTc2YzY4YmY5MjVkOTRhMzFjNWFhMzhlYTI0YTc3NTIxMGY=
|
data/Gemfile
CHANGED
@@ -5,10 +5,9 @@ gem 'bson_ext', '>= 1.6.4'
|
|
5
5
|
gem 'multi_json', '>= 1.3.6'
|
6
6
|
|
7
7
|
group :test do
|
8
|
-
gem '
|
9
|
-
gem 'shoulda', '>= 3.1.1'
|
10
|
-
gem 'mocha', '>= 0.12.3', :require => 'mocha/setup'
|
8
|
+
gem 'rspec', "~> 2.8"
|
11
9
|
gem 'database_cleaner', '>= 0.8.0'
|
10
|
+
gem 'timecop'
|
12
11
|
end
|
13
12
|
|
14
13
|
group :development, :test do
|
@@ -16,4 +15,4 @@ group :development, :test do
|
|
16
15
|
gem 'simplecov', :require => false
|
17
16
|
end
|
18
17
|
|
19
|
-
gem 'mongo_mapper', '
|
18
|
+
gem 'mongo_mapper', '0.13.0'
|
data/Rakefile
CHANGED
@@ -1,19 +1,10 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
require '
|
3
|
-
require 'rake'
|
2
|
+
require 'rspec/core/rake_task'
|
4
3
|
|
5
4
|
require File.join(File.dirname(__FILE__), 'lib', 'mongo_mapper', 'plugins', 'draft', 'version')
|
6
5
|
|
7
6
|
require 'rake/testtask'
|
8
7
|
namespace :test do
|
9
|
-
Rake::TestTask.new(:units) do |test|
|
10
|
-
test.libs << 'test'
|
11
|
-
test.ruby_opts << '-rubygems'
|
12
|
-
test.pattern = 'test/unit/**/test_*.rb'
|
13
|
-
test.verbose = true
|
14
|
-
end
|
15
|
-
|
16
|
-
#TODO Add performance
|
17
8
|
Rake::TestTask.new(:performance) do |test|
|
18
9
|
test.libs << 'test'
|
19
10
|
test.ruby_opts << '-rubygems'
|
@@ -22,5 +13,6 @@ namespace :test do
|
|
22
13
|
end
|
23
14
|
end
|
24
15
|
|
25
|
-
|
26
|
-
|
16
|
+
RSpec::Core::RakeTask.new(:spec)
|
17
|
+
task :default => :spec
|
18
|
+
gemspec = eval(File.read("mm-draft.gemspec"))
|
@@ -125,22 +125,13 @@ module MongoMapper
|
|
125
125
|
|
126
126
|
def unpublish
|
127
127
|
published_rec = self.published_record
|
128
|
-
draft_rec
|
128
|
+
draft_rec = self.draft_record
|
129
129
|
|
130
130
|
self.class.skip_callback(:destroy, :before, :unpublish)
|
131
131
|
published_rec.destroy if published_rec != nil # destroy published record
|
132
132
|
self.class.set_callback(:destroy, :before, :unpublish)
|
133
|
-
|
134
|
-
draft_rec.draft_record_published_id
|
135
|
-
draft_rec.save! if draft_rec != nil
|
136
|
-
# if draft?
|
137
|
-
# published = self.class.find(self.draft_record_published_id)
|
138
|
-
# published.destroy if (published != nil)
|
139
|
-
# self.draft_record_published_id = nil
|
140
|
-
# self.save! # remove draft_record_published_id
|
141
|
-
# else
|
142
|
-
# self.draft_record.unpublish
|
143
|
-
# end
|
133
|
+
draft_rec.set(published_at: nil) if self.respond_to?("published_at")
|
134
|
+
draft_rec.set(draft_record_published_id: nil)
|
144
135
|
end
|
145
136
|
|
146
137
|
end # Module Draft
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler/setup'
|
3
3
|
|
4
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
5
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
6
|
-
require 'draft'
|
6
|
+
require 'mm-draft'
|
7
7
|
|
8
8
|
Bundler.require(:default, :test)
|
9
9
|
|
@@ -7,10 +7,10 @@ DatabaseCleaner.start
|
|
7
7
|
Benchmark.bm(22) do |x|
|
8
8
|
ids_draft = []
|
9
9
|
ids_no_draft = []
|
10
|
-
|
10
|
+
|
11
11
|
# Write performance
|
12
12
|
x.report("write without draft ") do
|
13
|
-
500.times { |i| ids_no_draft <<
|
13
|
+
500.times { |i| ids_no_draft << MonkeyNoDraft.create(:name => "Baboo", :age => 12, ).id }
|
14
14
|
end
|
15
15
|
x.report("write with draft ") do
|
16
16
|
500.times { |i| ids_draft << Monkey.create(:name => "Baboo", :age => 12, ).id }
|
@@ -21,8 +21,9 @@ Benchmark.bm(22) do |x|
|
|
21
21
|
ids_draft.each { |id| Monkey.first(:id => id) }
|
22
22
|
end
|
23
23
|
x.report("read without draft ") do
|
24
|
-
ids_no_draft.each { |id|
|
24
|
+
ids_no_draft.each { |id| MonkeyNoDraft.first(:id => id) }
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
DatabaseCleaner.clean
|
29
|
+
MongoMapper.database.command({dropDatabase: 1})
|
metadata
CHANGED
@@ -1,41 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mm-draft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leif Ringstad
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ! '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mongo_mapper
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: timecop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '0'
|
41
69
|
description:
|
@@ -54,14 +82,10 @@ files:
|
|
54
82
|
- lib/mongo_mapper/plugins/draft/draft.rb
|
55
83
|
- lib/mongo_mapper/plugins/draft/keys.rb
|
56
84
|
- lib/mongo_mapper/plugins/draft/version.rb
|
57
|
-
- test/models/dog.rb
|
58
|
-
- test/models/monkey.rb
|
59
85
|
- test/performance/models/monkey.rb
|
60
86
|
- test/performance/models/monkey_no_draft.rb
|
61
87
|
- test/performance/performance_helper.rb
|
62
88
|
- test/performance/test/read_write.rb
|
63
|
-
- test/test_helper.rb
|
64
|
-
- test/unit/test_draft.rb
|
65
89
|
homepage: http://github.com/leifcr/mm-draft
|
66
90
|
licenses: []
|
67
91
|
metadata: {}
|
@@ -71,12 +95,12 @@ require_paths:
|
|
71
95
|
- lib
|
72
96
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
97
|
requirements:
|
74
|
-
- -
|
98
|
+
- - ! '>='
|
75
99
|
- !ruby/object:Gem::Version
|
76
100
|
version: '0'
|
77
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
102
|
requirements:
|
79
|
-
- -
|
103
|
+
- - ! '>='
|
80
104
|
- !ruby/object:Gem::Version
|
81
105
|
version: '0'
|
82
106
|
requirements: []
|
@@ -86,11 +110,7 @@ signing_key:
|
|
86
110
|
specification_version: 4
|
87
111
|
summary: A MongoMapper extension adding draft/publishing support
|
88
112
|
test_files:
|
89
|
-
- test/models/dog.rb
|
90
|
-
- test/models/monkey.rb
|
91
|
-
- test/test_helper.rb
|
92
113
|
- test/performance/performance_helper.rb
|
93
114
|
- test/performance/models/monkey_no_draft.rb
|
94
115
|
- test/performance/models/monkey.rb
|
95
116
|
- test/performance/test/read_write.rb
|
96
|
-
- test/unit/test_draft.rb
|
data/test/models/dog.rb
DELETED
data/test/models/monkey.rb
DELETED
data/test/test_helper.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/setup'
|
3
|
-
|
4
|
-
if ENV['TRAVIS']
|
5
|
-
require 'coveralls'
|
6
|
-
Coveralls.wear!
|
7
|
-
elsif ENV['COVERAGE']
|
8
|
-
require 'simplecov'
|
9
|
-
SimpleCov.start
|
10
|
-
end
|
11
|
-
|
12
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
-
require 'mm-draft'
|
15
|
-
|
16
|
-
Bundler.require(:default, :test)
|
17
|
-
|
18
|
-
MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017)
|
19
|
-
MongoMapper.database = "mm-draft-test"
|
20
|
-
|
21
|
-
Dir["#{File.dirname(__FILE__)}/models/*.rb"].each {|file| require file}
|
22
|
-
|
23
|
-
DatabaseCleaner.strategy = :truncation
|
24
|
-
|
25
|
-
class Test::Unit::TestCase
|
26
|
-
# Drop all collections after each test case.
|
27
|
-
def setup
|
28
|
-
DatabaseCleaner.start
|
29
|
-
end
|
30
|
-
|
31
|
-
def teardown
|
32
|
-
DatabaseCleaner.clean
|
33
|
-
end
|
34
|
-
|
35
|
-
# Make sure that each test case has a teardown
|
36
|
-
# method to clear the db after each test.
|
37
|
-
def inherited(base)
|
38
|
-
base.define_method setup do
|
39
|
-
super
|
40
|
-
end
|
41
|
-
|
42
|
-
base.define_method teardown do
|
43
|
-
super
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
data/test/unit/test_draft.rb
DELETED
@@ -1,226 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class DraftTest < Test::Unit::TestCase
|
4
|
-
context "draft monkey records" do
|
5
|
-
setup do
|
6
|
-
@monkey_1 = Monkey.create(:name => "Chip")
|
7
|
-
@monkey_2 = Monkey.create(:name => "Unaton")
|
8
|
-
@monkey_1.publish
|
9
|
-
end
|
10
|
-
|
11
|
-
should "have same name as draft" do
|
12
|
-
@monkey_1.name.should == "Chip"
|
13
|
-
@monkey_1.published_record.name.should == "Chip"
|
14
|
-
@monkey_1.published_record.name.should == @monkey_1.name
|
15
|
-
end
|
16
|
-
|
17
|
-
should "be published" do
|
18
|
-
@monkey_1.published_record.should_not == nil
|
19
|
-
end
|
20
|
-
|
21
|
-
should "not have same created time as draft" do
|
22
|
-
@monkey_1.unpublish
|
23
|
-
@monkey_1.publish
|
24
|
-
@monkey_1.created_at.should_not == @monkey_1.published_record.created_at
|
25
|
-
end
|
26
|
-
|
27
|
-
should "not be published" do
|
28
|
-
@monkey_2.published?.should_not == true
|
29
|
-
@monkey_2.published_record.should == nil
|
30
|
-
end
|
31
|
-
|
32
|
-
should "not be draft" do
|
33
|
-
@monkey_1.published_record.draft?.should_not == true
|
34
|
-
end
|
35
|
-
|
36
|
-
should "be draft" do
|
37
|
-
@monkey_2.draft?.should == true
|
38
|
-
end
|
39
|
-
|
40
|
-
should "rename draft only" do
|
41
|
-
@monkey_1.name = "Sagofon"
|
42
|
-
@monkey_1.published_record.should_not == nil
|
43
|
-
@monkey_1.name.should_not == @monkey_1.published_record.name
|
44
|
-
end
|
45
|
-
|
46
|
-
should "rename both draft and published record" do
|
47
|
-
@monkey_1.name = "Sagofon"
|
48
|
-
@monkey_1.publish
|
49
|
-
@monkey_1.published_record.should_not == nil
|
50
|
-
@monkey_1.name.should == @monkey_1.published_record.name
|
51
|
-
end
|
52
|
-
|
53
|
-
should "have updated updated_at both published record" do
|
54
|
-
@monkey_1.name ="Kake"
|
55
|
-
@monkey_1.save
|
56
|
-
@monkey_1.publish
|
57
|
-
@monkey_1.published_record.updated_at.should_not == @monkey_1.updated_at
|
58
|
-
end
|
59
|
-
|
60
|
-
should "unpublish draft record" do
|
61
|
-
@monkey_1.unpublish
|
62
|
-
assert !@monkey_1.published?
|
63
|
-
@monkey_1.published_record_id.should == nil
|
64
|
-
@monkey_1.published_record.should == nil
|
65
|
-
end
|
66
|
-
|
67
|
-
should "unpublish published record directly" do
|
68
|
-
# It is recommended to unpublish a draft record instead of unpublising a published record
|
69
|
-
@monkey_1.publish # publish record again...
|
70
|
-
@monkey_1.published_record.unpublish
|
71
|
-
# reload monkey_1
|
72
|
-
@monkey_1.reload
|
73
|
-
@monkey_1.published?.should_not == true
|
74
|
-
@monkey_1.published_record_id.should == nil
|
75
|
-
@monkey_1.published_record.should == nil
|
76
|
-
end
|
77
|
-
|
78
|
-
should "destroy published record only" do
|
79
|
-
@monkey_2.publish
|
80
|
-
tmp_id = @monkey_2.published_record_id
|
81
|
-
@monkey_2.published_record.destroy
|
82
|
-
@monkey_2.reload
|
83
|
-
@monkey_2.published_record_id.should == nil
|
84
|
-
@monkey_2.published_record.should == nil
|
85
|
-
@monkey_2.name.should == "Unaton" # make sure we didn't loose the draft
|
86
|
-
@monkey_2.published?.should_not == true
|
87
|
-
@monkey_2.draft?.should == true
|
88
|
-
Monkey.find(tmp_id).should == nil
|
89
|
-
end
|
90
|
-
|
91
|
-
should "destroy draft and published record" do
|
92
|
-
@monkey_2.publish # publish record again...
|
93
|
-
tmp_draft_id = @monkey_2._id
|
94
|
-
tmp_published_id = @monkey_2.published_record_id
|
95
|
-
@monkey_2.destroy
|
96
|
-
# keep ID's in order to check that they are destroyed!
|
97
|
-
Monkey.find(tmp_draft_id).should == nil
|
98
|
-
Monkey.find(tmp_published_id).should == nil
|
99
|
-
end
|
100
|
-
|
101
|
-
should 'get id of the published record on the published record' do
|
102
|
-
@monkey_1.published_record.published_record_id.should == @monkey_1.published_record._id
|
103
|
-
@monkey_1.draft_record_published_id.should == @monkey_1.published_record.published_record_id
|
104
|
-
end
|
105
|
-
|
106
|
-
should 'not be able to publish a published record' do
|
107
|
-
@monkey_1.published_record.publish.should == false
|
108
|
-
end
|
109
|
-
|
110
|
-
should 'return that a published_record is published' do
|
111
|
-
@monkey_1.published_record.published?.should == true
|
112
|
-
end
|
113
|
-
|
114
|
-
should 'return false for published? if a published record has been deleted instead of destroyed' do
|
115
|
-
@monkey_1.published_record.delete
|
116
|
-
@monkey_1.published?.should == false
|
117
|
-
end
|
118
|
-
|
119
|
-
|
120
|
-
end # context "draft monkey records" do
|
121
|
-
context "draft dog records with pubished_at" do
|
122
|
-
setup do
|
123
|
-
@monkey_1 = Dog.create(:name => "Chip")
|
124
|
-
end
|
125
|
-
|
126
|
-
should "should set published_at when publishing" do
|
127
|
-
@monkey_1.publish
|
128
|
-
@monkey_1.published_record.should_not == nil
|
129
|
-
@monkey_1.published_at.should_not == nil
|
130
|
-
@monkey_1.published_record.published_at.should_not == nil
|
131
|
-
@monkey_1.published_record.published_at.should == @monkey_1.published_at
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
# context "tree-record" do
|
136
|
-
# setup do
|
137
|
-
# @root_1 = Dog.create(:name => "Atmel")
|
138
|
-
# @child_1 = Dog.create(:name => "ATmega644P", :parent => @root_1)
|
139
|
-
# @child_2 = Dog.create(:name => "ATmega2561", :parent => @root_1)
|
140
|
-
# @child_2_1 = Dog.create(:name => "ATtiny24", :parent => @child_2)
|
141
|
-
|
142
|
-
# @root_2 = Dog.create(:name => "ST Ericsson")
|
143
|
-
# @child_3 = Dog.create(:name => "ISP1181B", :parent => @root_2)
|
144
|
-
|
145
|
-
# @root_1.publish
|
146
|
-
# @child_1.publish
|
147
|
-
# @child_2.publish
|
148
|
-
# @child_2_1.publish
|
149
|
-
# @root_2.publish
|
150
|
-
# end
|
151
|
-
|
152
|
-
# should "test draft record parents" do
|
153
|
-
# assert_equal(@root_2, @child_3.parent)
|
154
|
-
# assert_equal(@child_2, @child_2_1.parent)
|
155
|
-
# end
|
156
|
-
|
157
|
-
# should "test parents for published records" do
|
158
|
-
# assert_equal(@root_1.published_record, @child_1.published_record.parent)
|
159
|
-
# assert_equal(@root_1.published_record, @child_2.published_record.parent)
|
160
|
-
# assert_equal(@child_2.published_record, @child_2_1.published_record.parent)
|
161
|
-
# end
|
162
|
-
|
163
|
-
# should "move draft record to new parent, but keep published at old parent" do
|
164
|
-
# @child_2.parent = @root_2
|
165
|
-
|
166
|
-
# assert !@root_2.is_or_is_ancestor_of?(@child_2_1)
|
167
|
-
# assert !@child_2_1.is_or_is_descendant_of?(@root_2)
|
168
|
-
# assert !@root_2.descendants.include?(@child_2_1)
|
169
|
-
|
170
|
-
# @child_2.save
|
171
|
-
# @child_2_1.reload
|
172
|
-
|
173
|
-
# assert @root_2.is_or_is_ancestor_of?(@child_2_1)
|
174
|
-
# assert @child_2_1.is_or_is_descendant_of?(@root_2)
|
175
|
-
# assert @root_2.descendants.include?(@child_2_1)
|
176
|
-
|
177
|
-
# # test published against root_1
|
178
|
-
# assert @root_1.published_record.is_or_is_ancestor_of?(@child_2_1.published_record)
|
179
|
-
# assert @child_2_1.published_record.is_or_is_descendant_of?(@root_1.published_record)
|
180
|
-
# assert @root_1.published_record.descendants.include?(@child_2_1.published_record)
|
181
|
-
# end
|
182
|
-
|
183
|
-
# should "move both draft and published record to new parent" do
|
184
|
-
# @child_2.parent = @root_2
|
185
|
-
|
186
|
-
# assert !@root_2.is_or_is_ancestor_of?(@child_2_1)
|
187
|
-
# assert !@child_2_1.is_or_is_descendant_of?(@root_2)
|
188
|
-
# assert !@root_2.descendants.include?(@child_2_1)
|
189
|
-
|
190
|
-
# # can only test published after saving and publishing
|
191
|
-
# @child_2.save
|
192
|
-
# @child_2.publish # will also save
|
193
|
-
# @child_2.reload
|
194
|
-
# @child_2_1.reload
|
195
|
-
|
196
|
-
# assert @root_2.is_or_is_ancestor_of?(@child_2_1)
|
197
|
-
# assert @child_2_1.is_or_is_descendant_of?(@root_2)
|
198
|
-
# assert @root_2.descendants.include?(@child_2_1)
|
199
|
-
|
200
|
-
# assert @root_2.published_record.is_or_is_ancestor_of?(@child_2_1.published_record)
|
201
|
-
# assert @child_2_1.published_record.is_or_is_descendant_of?(@root_2.published_record)
|
202
|
-
# assert @root_2.published_record.descendants.include?(@child_2_1.published_record)
|
203
|
-
# end
|
204
|
-
|
205
|
-
# should "set a record as a root and check for ancestor" do
|
206
|
-
# @child_2.parent = nil
|
207
|
-
|
208
|
-
# assert !@root_2.is_or_is_ancestor_of?(@child_2_1)
|
209
|
-
# assert !@child_2_1.is_or_is_descendant_of?(@root_2)
|
210
|
-
# assert !@root_2.descendants.include?(@child_2_1)
|
211
|
-
|
212
|
-
# # can only test published after saving and publishing
|
213
|
-
# @child_2.save
|
214
|
-
# @child_2.publish # will also save
|
215
|
-
# @child_2.reload
|
216
|
-
# @child_2_1.reload
|
217
|
-
|
218
|
-
# assert @child_2.root?
|
219
|
-
# assert @child_2.published_record.root?
|
220
|
-
# assert @child_2_1.is_or_is_descendant_of?(@child_2)
|
221
|
-
|
222
|
-
# assert !@root_1.published_record.is_or_is_ancestor_of?(@child_2_1.published_record)
|
223
|
-
# assert !@child_2_1.published_record.is_or_is_descendant_of?(@root_1.published_record)
|
224
|
-
# assert !@root_1.published_record.descendants.include?(@child_2_1.published_record)
|
225
|
-
# end
|
226
|
-
end
|