lportal 1.0.7 → 1.0.8
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.
- data/README +81 -10
- data/lib/blog_post.rb +7 -7
- data/lib/bookmark/entry.rb +4 -0
- data/lib/contact.rb +1 -1
- data/lib/dl_file.rb +1 -0
- data/lib/dl_folder.rb +4 -0
- data/lib/group.rb +183 -4
- data/lib/ig/image.rb +1 -0
- data/lib/journal/article_resource.rb +1 -0
- data/lib/mb/category.rb +168 -1
- data/lib/mb/message.rb +4 -0
- data/lib/resource_code.rb +12 -0
- data/lib/role.rb +169 -0
- data/lib/tag/asset.rb +16 -3
- data/lib/tag/entry.rb +1 -0
- data/lib/user.rb +136 -31
- data/lib/web/layout.rb +148 -0
- data/lib/web/portlet_preferences.rb +1 -1
- data/lib/web/typesettings.rb +113 -0
- data/lib/wiki/pageresource.rb +1 -0
- data/test/unit/blog_post_test.rb +6 -0
- data/test/unit/group_test.rb +111 -5
- data/test/unit/mb/category_test.rb +63 -1
- data/test/unit/phone_test.rb +33 -0
- data/test/unit/role_test.rb +127 -8
- data/test/unit/tag/asset_test.rb +24 -12
- data/test/unit/user_test.rb +189 -1
- data/test/unit/web/layout_test.rb +62 -6
- data/test/unit/web/typesettings_test.rb +54 -0
- data/version.rb +1 -1
- metadata +5 -2
data/test/unit/user_test.rb
CHANGED
@@ -7,14 +7,195 @@ class UserTest < ActiveSupport::TestCase
|
|
7
7
|
:phone,
|
8
8
|
:contact_,
|
9
9
|
:classname_,
|
10
|
-
:
|
10
|
+
:listtype,
|
11
|
+
:layoutset,
|
12
|
+
:counter,
|
13
|
+
:resourcecode
|
11
14
|
]
|
12
15
|
|
13
16
|
def setup
|
14
17
|
@users = User.all
|
18
|
+
@company = Company.first
|
19
|
+
flunk 'No company!' unless @company
|
15
20
|
end
|
16
21
|
|
17
22
|
def test_create
|
23
|
+
firstname = 'Test'
|
24
|
+
lastname = 'User'
|
25
|
+
email = 'test@localhost'
|
26
|
+
counter_permission = Counter.find_by_name('com.liferay.portal.model.Permission')
|
27
|
+
counter_resource = Counter.find_by_name('com.liferay.portal.model.Resource')
|
28
|
+
|
29
|
+
user = User.create(
|
30
|
+
:company => @company,
|
31
|
+
:firstname => firstname,
|
32
|
+
:lastname => lastname,
|
33
|
+
:emailaddress => email
|
34
|
+
)
|
35
|
+
assert_not_nil user
|
36
|
+
|
37
|
+
assert_equal @company, user.company
|
38
|
+
assert_not_nil user.uuid_
|
39
|
+
assert user.active_
|
40
|
+
assert_equal [firstname, lastname].join('-').downcase, user.screenname
|
41
|
+
assert_equal firstname, user.password_
|
42
|
+
assert_equal email, user.emailaddress
|
43
|
+
|
44
|
+
# contact_
|
45
|
+
c = Contact.find_by_userid user.id
|
46
|
+
assert_equal c, user.contact
|
47
|
+
assert_equal user.companyid, c.companyid
|
48
|
+
assert_equal user.company.accountid, c.accountid
|
49
|
+
assert_equal firstname, c.firstname
|
50
|
+
assert_equal lastname, c.lastname
|
51
|
+
assert_equal 0, c.prefixid
|
52
|
+
assert_equal 0, c.suffixid
|
53
|
+
assert_equal 0, c.parentcontactid
|
54
|
+
|
55
|
+
# check "User" and "Power User" roles
|
56
|
+
_userrole = Role.find(:first, :conditions => "companyid=#{user.companyid} AND name='User'")
|
57
|
+
_powerrole = Role.find(:first, :conditions => "companyid=#{user.companyid} AND name='Power User'")
|
58
|
+
assert user.roles.include?(_userrole)
|
59
|
+
assert user.roles.include?(_powerrole)
|
60
|
+
|
61
|
+
# group
|
62
|
+
g = Group.find_by_classpk(user.id)
|
63
|
+
assert_not_nil g
|
64
|
+
assert_equal g, user.hive
|
65
|
+
|
66
|
+
assert_equal user.companyid, g.companyid
|
67
|
+
assert_equal user.id, g.creatoruserid
|
68
|
+
assert_equal Classname.find_by_value(user.liferay_class).id, g.classnameid
|
69
|
+
assert_equal user.id, g.classpk
|
70
|
+
assert_equal 0, g.parentgroupid
|
71
|
+
assert_equal 0, g.livegroupid
|
72
|
+
assert_equal 0, g.type_
|
73
|
+
assert_equal '/'+user.screenname, g.friendlyurl
|
74
|
+
assert g.is_active?
|
75
|
+
|
76
|
+
assert_not_nil g.public_layoutset
|
77
|
+
assert_not_nil g.private_layoutset
|
78
|
+
|
79
|
+
g.layoutsets.each do |ls|
|
80
|
+
assert_equal user.companyid, ls.companyid
|
81
|
+
assert_equal false, ls.logo
|
82
|
+
assert_equal 0, ls.logoid
|
83
|
+
assert_equal 0, ls.pagecount
|
84
|
+
end
|
85
|
+
|
86
|
+
rc = user.resource_code(4)
|
87
|
+
assert_not_nil rc
|
88
|
+
|
89
|
+
# resource
|
90
|
+
resources = user.resources.select{|r| r.codeid == rc.id}
|
91
|
+
assert !resources.empty?
|
92
|
+
resource = resources.first
|
93
|
+
# counter
|
94
|
+
assert_equal (counter_resource.currentid+100), counter_resource.reload.currentid
|
95
|
+
|
96
|
+
# permissions
|
97
|
+
user.class.actions.each do |action|
|
98
|
+
p = resource.permissions.select{|_p| _p.actionid==action}.first
|
99
|
+
assert_not_nil p
|
100
|
+
assert_equal user.companyid, p.companyid
|
101
|
+
assert user.user_permissions.include?(p)
|
102
|
+
end
|
103
|
+
# counter
|
104
|
+
assert_equal (counter_permission.currentid+100), counter_permission.reload.currentid
|
105
|
+
|
106
|
+
# announcementsdelivery
|
107
|
+
['general','news','test'].each do |type|
|
108
|
+
d = Announcement::Delivery.find(:first,
|
109
|
+
:conditions => "userid=#{user.id} AND type_='#{type}'")
|
110
|
+
|
111
|
+
assert_equal user.companyid, d.companyid
|
112
|
+
assert_equal false, d.email
|
113
|
+
assert_equal false, d.sms
|
114
|
+
assert_equal true, d.website
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def destroy_user
|
119
|
+
firstname = 'Test'
|
120
|
+
lastname = 'User'
|
121
|
+
email = 'test@localhost'
|
122
|
+
counter_permission = Counter.find_by_name('com.liferay.portal.model.Permission')
|
123
|
+
counter_resource = Counter.find_by_name('com.liferay.portal.model.Resource')
|
124
|
+
|
125
|
+
user = User.create(
|
126
|
+
:company => @company,
|
127
|
+
:firstname => 'Test',
|
128
|
+
:lastname => 'User'
|
129
|
+
)
|
130
|
+
assert_not_nil user
|
131
|
+
|
132
|
+
resources = user.resources
|
133
|
+
permissions = user.permissions
|
134
|
+
roles = user.roles
|
135
|
+
|
136
|
+
contact = user.contact
|
137
|
+
assert_not_nil contact
|
138
|
+
|
139
|
+
group = u.hive
|
140
|
+
assert_not_nil group
|
141
|
+
|
142
|
+
layoutsets = group.layoutsets
|
143
|
+
|
144
|
+
###
|
145
|
+
user.destroy
|
146
|
+
###
|
147
|
+
|
148
|
+
assert_raise(ActiveRecord::RecordNotFound) { contact.reload }
|
149
|
+
assert_raise(ActiveRecord::RecordNotFound) { group.reload }
|
150
|
+
layoutsets.each do |ls|
|
151
|
+
assert_raise(ActiveRecord::RecordNotFound) { ls.reload }
|
152
|
+
end
|
153
|
+
|
154
|
+
['general','news','test'].each do |type|
|
155
|
+
assert_nil Announcement::Delivery.find(:first,
|
156
|
+
:conditions => "userid=#{u.id} AND type_='#{type}'")
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
# organization membership
|
161
|
+
def test_assign_organization_membership
|
162
|
+
user = @users.first
|
163
|
+
|
164
|
+
org_role = Role.find(:first, :conditions => "companyid=#{user.companyid} AND name='Organization Member'")
|
165
|
+
assert_not_nil org_role
|
166
|
+
|
167
|
+
@company.organizations.each do |org|
|
168
|
+
user.assign_organization_membership(org)
|
169
|
+
assert user.organizations.include?(org)
|
170
|
+
|
171
|
+
# can ActiveRecord handle 3-way associations?
|
172
|
+
r = ActiveRecord::Base.connection.execute(
|
173
|
+
"SELECT * from usergrouprole WHERE userid=%i;" % user.id)
|
174
|
+
assert_equal 1, r.result.size
|
175
|
+
res = r.result.first
|
176
|
+
assert_equal user.id, res[0].to_i
|
177
|
+
assert_equal org.group.id, res[1].to_i
|
178
|
+
assert_equal org_role.id, res[2].to_i
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_gsm
|
183
|
+
nr = Kernel.rand(10000000).to_s
|
184
|
+
u = @users.first
|
185
|
+
u.phones.each(&:destroy)
|
186
|
+
|
187
|
+
u = User.find u.id
|
188
|
+
u.gsm = nr
|
189
|
+
|
190
|
+
phone = u.phones.first
|
191
|
+
assert_not_nil phone
|
192
|
+
assert_equal u.companyid, phone.companyid
|
193
|
+
assert_equal u.fullname, phone.username
|
194
|
+
assert_equal Classname.find_by_value('com.liferay.portal.model.Contact').id, phone.classnameid
|
195
|
+
assert_equal u.contact.id, phone.classpk
|
196
|
+
assert_equal nr, phone.number_
|
197
|
+
assert_equal ListType.find_by_name('Mobile').id, phone.typeid
|
198
|
+
assert phone.is_primary?
|
18
199
|
end
|
19
200
|
|
20
201
|
# each user must belong to a company
|
@@ -110,4 +291,11 @@ class UserTest < ActiveSupport::TestCase
|
|
110
291
|
end
|
111
292
|
end
|
112
293
|
|
294
|
+
def test_path
|
295
|
+
@users.each do |u|
|
296
|
+
assert_not_nil u.path(:public) if u.hive.public_layoutset
|
297
|
+
assert_not_nil u.path(:private) if u.hive.private_layoutset
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
113
301
|
end
|
@@ -1,13 +1,68 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class Web::LayoutTest < ActiveSupport::TestCase
|
4
|
-
fixtures
|
4
|
+
fixtures [
|
5
|
+
:layout, :layoutset, :portlet, :portletpreferences, :portlet_names, :resourcecode
|
6
|
+
]
|
5
7
|
|
6
8
|
def setup
|
7
9
|
@layouts = Web::Layout.find :all
|
8
10
|
assert !@layouts.empty?
|
9
11
|
end
|
10
12
|
|
13
|
+
def test_create
|
14
|
+
group = Group.first
|
15
|
+
|
16
|
+
# public
|
17
|
+
layoutset = group.public_layoutset
|
18
|
+
layouts = layoutset.layouts.size
|
19
|
+
|
20
|
+
ids = group.public_layouts.collect(&:layoutid)
|
21
|
+
|
22
|
+
layout = Web::Layout.create(
|
23
|
+
:group => group,
|
24
|
+
:privatelayout => false
|
25
|
+
)
|
26
|
+
assert_not_nil layout
|
27
|
+
|
28
|
+
assert_equal group, layout.group
|
29
|
+
assert_equal group.companyid, layout.companyid
|
30
|
+
assert_equal layoutset, layout.layoutset
|
31
|
+
assert_not_nil layout.layoutid
|
32
|
+
|
33
|
+
assert !ids.include?(layout.layoutid)
|
34
|
+
|
35
|
+
assert_not_nil layout.friendlyurl
|
36
|
+
assert_equal 'portlet', layout.type_
|
37
|
+
assert_not_nil layout.typesettings
|
38
|
+
assert_not_nil layout.title
|
39
|
+
assert_not_nil layout.description
|
40
|
+
assert_not_nil layout.hidden_
|
41
|
+
|
42
|
+
layoutset.reload
|
43
|
+
assert_equal layouts+1, layoutset.pagecount
|
44
|
+
|
45
|
+
rc = layout.resource_code(2)
|
46
|
+
assert_not_nil rc
|
47
|
+
assert_not_nil Resource.find(:first, :conditions => "codeid=#{rc.id} AND primkey='#{group.id}'")
|
48
|
+
|
49
|
+
rc = layout.resource_code(4)
|
50
|
+
assert_not_nil rc
|
51
|
+
resource = Resource.find(:first, :conditions => "codeid=#{rc.id} AND primkey='#{layout.id}'")
|
52
|
+
assert_not_nil resource
|
53
|
+
|
54
|
+
|
55
|
+
group.reload
|
56
|
+
|
57
|
+
layout.class.actions.each do |actionid|
|
58
|
+
p = Permission.find(:first,
|
59
|
+
:conditions => "companyid=#{layout.companyid} AND actionid='#{actionid}' AND resourceid=#{resource.id}")
|
60
|
+
assert_not_nil p
|
61
|
+
|
62
|
+
assert group.permissions.include?(p)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
11
66
|
# each layout must belong to a company
|
12
67
|
def test_company
|
13
68
|
@layouts.each do |x|
|
@@ -74,14 +129,15 @@ class Web::LayoutTest < ActiveSupport::TestCase
|
|
74
129
|
|
75
130
|
# check portlets
|
76
131
|
x.portletids.each do |id|
|
77
|
-
|
78
|
-
|
79
|
-
end
|
132
|
+
next if id[/INSTANCE/]
|
133
|
+
assert Web::Portlet.find_by_portletid(id), "Layout #{x.id} defines portlet #{id} but it is not found in the portlet table"
|
80
134
|
end
|
81
135
|
|
82
136
|
# check instances
|
83
|
-
x.
|
84
|
-
|
137
|
+
x.instances.each do |portlet|
|
138
|
+
portletid = portlet.portletid
|
139
|
+
next unless portletid[/INSTANCE/]
|
140
|
+
assert Web::PortletPreferences.find_by_portletid(), "#{x.id} defines portlet instance #{portletid} but it is not found in portletpreferences"
|
85
141
|
end
|
86
142
|
end
|
87
143
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TypesettingsTest < ActiveSupport::TestCase
|
4
|
+
fixtures [
|
5
|
+
:layout,
|
6
|
+
# :portlet, :portletpreferences
|
7
|
+
]
|
8
|
+
|
9
|
+
def setup
|
10
|
+
# test caterpillar migrations
|
11
|
+
p = Web::PortletName.first
|
12
|
+
flunk 'Please run Caterpillar migrations' unless p
|
13
|
+
|
14
|
+
@mb = Web::PortletName.find_by_name 'message_boards'
|
15
|
+
assert_not_nil @mb
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_empty
|
19
|
+
assert_equal "layout-template-id=2_columns_ii\n", Web::Typesettings.new.to_s
|
20
|
+
assert_equal "layout-template-id=1_column\n", Web::Typesettings.new(:columns => 1).to_s
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_message_boards
|
24
|
+
typesettings = "layout-template-id=2_columns_ii\ncolumn-2=%i," % @mb.portletid
|
25
|
+
assert_equal typesettings, Web::Typesettings.new.message_boards(:column => 2).to_s
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_include
|
29
|
+
ts = Web::Typesettings.new.message_boards(:column => 2)
|
30
|
+
assert ts.include?(Web::PortletName.find_by_name('message_boards'))
|
31
|
+
assert !ts.include?(Web::PortletName.find_by_name('translator'))
|
32
|
+
assert ts.include?('message_boards')
|
33
|
+
assert !ts.include?('translator')
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_read
|
37
|
+
ts = Web::Typesettings.new.message_boards(:column => 2).to_s
|
38
|
+
_ts = Web::Typesettings.new(ts)
|
39
|
+
assert_equal ts, _ts.to_s
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_layouts
|
43
|
+
puts
|
44
|
+
Web::Layout.all.each do |layout|
|
45
|
+
ts = layout.typesettings
|
46
|
+
# compare string lengths
|
47
|
+
puts ts.inspect
|
48
|
+
puts layout.contents.to_s.inspect
|
49
|
+
assert_equal ts.size, layout.contents.to_s.size
|
50
|
+
puts '...'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lportal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Lammentausta
|
@@ -9,7 +9,7 @@ autorequire: init
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-25 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- lib/web/portlet_preferences.rb
|
93
93
|
- lib/web/layout_set.rb
|
94
94
|
- lib/web/portlet.rb
|
95
|
+
- lib/web/typesettings.rb
|
95
96
|
- lib/dl_file.rb
|
96
97
|
- lib/permission.rb
|
97
98
|
- lib/bookmark
|
@@ -163,6 +164,7 @@ test_files:
|
|
163
164
|
- test/unit/mb/discussion_test.rb
|
164
165
|
- test/unit/mb/thread_test.rb
|
165
166
|
- test/unit/address_test.rb
|
167
|
+
- test/unit/web/typesettings_test.rb
|
166
168
|
- test/unit/web/layout_set_test.rb
|
167
169
|
- test/unit/web/layout_test.rb
|
168
170
|
- test/unit/web/portlet_preferences_test.rb
|
@@ -173,3 +175,4 @@ test_files:
|
|
173
175
|
- test/unit/bookmark/folder_test.rb
|
174
176
|
- test/unit/user_test.rb
|
175
177
|
- test/unit/permission_test.rb
|
178
|
+
- test/unit/phone_test.rb
|