lportal 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|