lucid_works 0.7.18 → 0.9.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.
- data/.rvmrc +2 -3
- data/Gemfile +2 -8
- data/Gemfile.lock +45 -53
- data/README.rdoc +2 -6
- data/Rakefile +1 -1
- data/config/locales/en.yml +221 -239
- data/lib/lucid_works/activity.rb +8 -5
- data/lib/lucid_works/base.rb +27 -16
- data/lib/lucid_works/cache.rb +13 -0
- data/lib/lucid_works/cluster.rb +84 -0
- data/lib/lucid_works/collection/settings.rb +15 -6
- data/lib/lucid_works/collection.rb +62 -92
- data/lib/lucid_works/datasource/history.rb +2 -1
- data/lib/lucid_works/datasource/mapping.rb +12 -0
- data/lib/lucid_works/datasource/schedule.rb +5 -2
- data/lib/lucid_works/datasource/status.rb +3 -2
- data/lib/lucid_works/datasource.rb +31 -48
- data/lib/lucid_works/datasource_property.rb +2 -1
- data/lib/lucid_works/datasource_type.rb +14 -0
- data/lib/lucid_works/dynamicfield.rb +12 -0
- data/lib/lucid_works/elevation.rb +93 -0
- data/lib/lucid_works/exceptions.rb +0 -4
- data/lib/lucid_works/field.rb +31 -111
- data/lib/lucid_works/field_commons.rb +133 -0
- data/lib/lucid_works/gem_version.rb +1 -1
- data/lib/lucid_works/inflections.rb +3 -0
- data/lib/lucid_works/patch_time.rb +4 -0
- data/lib/lucid_works/request_handler.rb +16 -0
- data/lib/lucid_works/role.rb +23 -8
- data/lib/lucid_works/schema/attribute.rb +1 -1
- data/lib/lucid_works/schema/boolean_attribute.rb +1 -1
- data/lib/lucid_works/schema/integer_attribute.rb +3 -4
- data/lib/lucid_works/server/crawlers_status.rb +15 -0
- data/lib/lucid_works/server.rb +35 -14
- data/lib/lucid_works/simple_naming.rb +1 -7
- data/lib/lucid_works/synonym.rb +1 -1
- data/lib/lucid_works/version.rb +1 -0
- data/lib/lucid_works.rb +8 -1
- data/lucid_works.gemspec +8 -9
- data/spec/fixtures/zookeeper/clusterstate.json +30 -0
- data/spec/fixtures/zookeeper/clusterstate_broken_shard.json +29 -0
- data/spec/fixtures/zookeeper/live_nodes.json +28 -0
- data/spec/fixtures/zookeeper/live_nodes_no_children.json +26 -0
- data/spec/fixtures/zookeeper/live_nodes_one_child.json +36 -0
- data/spec/lib/lucid_works/base_spec.rb +33 -24
- data/spec/lib/lucid_works/cache_spec.rb +44 -0
- data/spec/lib/lucid_works/cluster_spec.rb +109 -0
- data/spec/lib/lucid_works/collection/activity_spec.rb +29 -0
- data/spec/lib/lucid_works/collection/prime_activities_spec.rb +1 -1
- data/spec/lib/lucid_works/collection/settings_spec.rb +31 -0
- data/spec/lib/lucid_works/collection_spec.rb +166 -107
- data/spec/lib/lucid_works/datasource/schedule_spec.rb +75 -46
- data/spec/lib/lucid_works/datasource/status_spec.rb +5 -5
- data/spec/lib/lucid_works/datasource_property_spec.rb +41 -0
- data/spec/lib/lucid_works/datasource_spec.rb +40 -12
- data/spec/lib/lucid_works/datasource_type_spec.rb +31 -0
- data/spec/lib/lucid_works/dynamicfield_spec.rb +214 -0
- data/spec/lib/lucid_works/elevation_spec.rb +175 -0
- data/spec/lib/lucid_works/field_spec.rb +52 -21
- data/spec/lib/lucid_works/fieldtype_spec.rb +0 -1
- data/spec/lib/lucid_works/request_handler_spec.rb +11 -0
- data/spec/lib/lucid_works/role_spec.rb +77 -0
- data/spec/lib/lucid_works/server/crawlers_status_spec.rb +21 -0
- data/spec/lib/lucid_works/server_spec.rb +123 -22
- data/spec/lib/lucid_works/{collection/synonym_spec.rb → synonym_spec.rb} +23 -22
- data/spec/lib/lucid_works/version_spec.rb +6 -0
- metadata +132 -64
- data/spec/lib/lucid_works/collection/acl_config_spec.rb +0 -212
metadata
CHANGED
@@ -1,104 +1,131 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid_works
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.9.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
-
|
9
|
-
autorequire:
|
8
|
+
- Lucid Imagination
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
NA==
|
17
22
|
none: false
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
18
24
|
requirements:
|
19
|
-
- -
|
25
|
+
- - ">="
|
20
26
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
-
|
27
|
+
version: !binary |-
|
28
|
+
NA==
|
29
|
+
none: false
|
23
30
|
prerelease: false
|
24
|
-
|
31
|
+
type: :runtime
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: activemodel
|
27
|
-
|
34
|
+
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: !binary |-
|
39
|
+
NA==
|
28
40
|
none: false
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
29
42
|
requirements:
|
30
|
-
- -
|
43
|
+
- - ">="
|
31
44
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
-
|
45
|
+
version: !binary |-
|
46
|
+
NA==
|
47
|
+
none: false
|
34
48
|
prerelease: false
|
35
|
-
|
49
|
+
type: :runtime
|
36
50
|
- !ruby/object:Gem::Dependency
|
37
51
|
name: rest-client
|
38
|
-
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.6.7
|
39
57
|
none: false
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
40
59
|
requirements:
|
41
|
-
- -
|
60
|
+
- - '='
|
42
61
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.6.
|
44
|
-
|
62
|
+
version: 1.6.7
|
63
|
+
none: false
|
45
64
|
prerelease: false
|
46
|
-
|
65
|
+
type: :runtime
|
47
66
|
- !ruby/object:Gem::Dependency
|
48
67
|
name: json
|
49
|
-
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: !binary |-
|
73
|
+
MA==
|
50
74
|
none: false
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
51
76
|
requirements:
|
52
|
-
- -
|
77
|
+
- - ">="
|
53
78
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
79
|
+
version: !binary |-
|
80
|
+
MA==
|
81
|
+
none: false
|
56
82
|
prerelease: false
|
57
|
-
|
83
|
+
type: :runtime
|
58
84
|
- !ruby/object:Gem::Dependency
|
59
85
|
name: rsolr
|
60
|
-
|
61
|
-
none: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
62
87
|
requirements:
|
63
|
-
- -
|
88
|
+
- - '='
|
64
89
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
66
|
-
type: :runtime
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: *2153356620
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rsolr-ext
|
71
|
-
requirement: &2153373340 !ruby/object:Gem::Requirement
|
90
|
+
version: 1.0.9
|
72
91
|
none: false
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
73
93
|
requirements:
|
74
|
-
- -
|
94
|
+
- - '='
|
75
95
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
77
|
-
|
96
|
+
version: 1.0.9
|
97
|
+
none: false
|
78
98
|
prerelease: false
|
79
|
-
|
99
|
+
type: :runtime
|
80
100
|
- !ruby/object:Gem::Dependency
|
81
101
|
name: nokogiri
|
82
|
-
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: !binary |-
|
107
|
+
MA==
|
83
108
|
none: false
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
84
110
|
requirements:
|
85
|
-
- -
|
111
|
+
- - ">="
|
86
112
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
88
|
-
|
113
|
+
version: !binary |-
|
114
|
+
MA==
|
115
|
+
none: false
|
89
116
|
prerelease: false
|
90
|
-
|
117
|
+
type: :runtime
|
91
118
|
description: Ruby wrapper for the LucidWorks REST API
|
92
119
|
email:
|
93
|
-
-
|
120
|
+
- support@lucidimagination.com
|
94
121
|
executables: []
|
95
122
|
extensions: []
|
96
123
|
extra_rdoc_files: []
|
97
124
|
files:
|
98
|
-
- .autotest
|
99
|
-
- .gitignore
|
100
|
-
- .rspec
|
101
|
-
- .rvmrc
|
125
|
+
- ".autotest"
|
126
|
+
- ".gitignore"
|
127
|
+
- ".rspec"
|
128
|
+
- ".rvmrc"
|
102
129
|
- Gemfile
|
103
130
|
- Gemfile.lock
|
104
131
|
- LICENSE
|
@@ -115,6 +142,8 @@ files:
|
|
115
142
|
- lib/lucid_works/associations/has_one.rb
|
116
143
|
- lib/lucid_works/associations/proxy.rb
|
117
144
|
- lib/lucid_works/base.rb
|
145
|
+
- lib/lucid_works/cache.rb
|
146
|
+
- lib/lucid_works/cluster.rb
|
118
147
|
- lib/lucid_works/collection.rb
|
119
148
|
- lib/lucid_works/collection/click.rb
|
120
149
|
- lib/lucid_works/collection/index.rb
|
@@ -126,14 +155,19 @@ files:
|
|
126
155
|
- lib/lucid_works/datasource/history.rb
|
127
156
|
- lib/lucid_works/datasource/index.rb
|
128
157
|
- lib/lucid_works/datasource/job.rb
|
158
|
+
- lib/lucid_works/datasource/mapping.rb
|
129
159
|
- lib/lucid_works/datasource/schedule.rb
|
130
160
|
- lib/lucid_works/datasource/status.rb
|
131
161
|
- lib/lucid_works/datasource_property.rb
|
132
162
|
- lib/lucid_works/datasource_type.rb
|
163
|
+
- lib/lucid_works/dynamicfield.rb
|
164
|
+
- lib/lucid_works/elevation.rb
|
133
165
|
- lib/lucid_works/exceptions.rb
|
134
166
|
- lib/lucid_works/field.rb
|
167
|
+
- lib/lucid_works/field_commons.rb
|
135
168
|
- lib/lucid_works/fieldtype.rb
|
136
169
|
- lib/lucid_works/gem_version.rb
|
170
|
+
- lib/lucid_works/inflections.rb
|
137
171
|
- lib/lucid_works/jdbcdriver.rb
|
138
172
|
- lib/lucid_works/logs.rb
|
139
173
|
- lib/lucid_works/logs/index.rb
|
@@ -142,6 +176,7 @@ files:
|
|
142
176
|
- lib/lucid_works/logs/query/summary.rb
|
143
177
|
- lib/lucid_works/patch_restclient.rb
|
144
178
|
- lib/lucid_works/patch_time.rb
|
179
|
+
- lib/lucid_works/request_handler.rb
|
145
180
|
- lib/lucid_works/role.rb
|
146
181
|
- lib/lucid_works/schema.rb
|
147
182
|
- lib/lucid_works/schema/attribute.rb
|
@@ -152,6 +187,7 @@ files:
|
|
152
187
|
- lib/lucid_works/schema/list_attribute.rb
|
153
188
|
- lib/lucid_works/schema/string_attribute.rb
|
154
189
|
- lib/lucid_works/server.rb
|
190
|
+
- lib/lucid_works/server/crawlers_status.rb
|
155
191
|
- lib/lucid_works/simple_naming.rb
|
156
192
|
- lib/lucid_works/synonym.rb
|
157
193
|
- lib/lucid_works/utils.rb
|
@@ -164,55 +200,72 @@ files:
|
|
164
200
|
- spec/fixtures/fake_file_ds_to_get_status_of/.gitkeep
|
165
201
|
- spec/fixtures/fake_file_ds_to_mess_with_job_of/.gitkeep
|
166
202
|
- spec/fixtures/fake_file_ds_to_test_progress/.gitkeep
|
203
|
+
- spec/fixtures/zookeeper/clusterstate.json
|
204
|
+
- spec/fixtures/zookeeper/clusterstate_broken_shard.json
|
205
|
+
- spec/fixtures/zookeeper/live_nodes.json
|
206
|
+
- spec/fixtures/zookeeper/live_nodes_no_children.json
|
207
|
+
- spec/fixtures/zookeeper/live_nodes_one_child.json
|
167
208
|
- spec/lib/lucid_works/associations/has_many_spec.rb
|
168
209
|
- spec/lib/lucid_works/associations/has_one_spec.rb
|
169
210
|
- spec/lib/lucid_works/associations_spec.rb
|
170
211
|
- spec/lib/lucid_works/base_spec.rb
|
171
|
-
- spec/lib/lucid_works/
|
212
|
+
- spec/lib/lucid_works/cache_spec.rb
|
213
|
+
- spec/lib/lucid_works/cluster_spec.rb
|
172
214
|
- spec/lib/lucid_works/collection/activity/history_spec.rb
|
173
215
|
- spec/lib/lucid_works/collection/activity/status_spec.rb
|
174
216
|
- spec/lib/lucid_works/collection/activity_spec.rb
|
175
217
|
- spec/lib/lucid_works/collection/prime_activities_spec.rb
|
176
|
-
- spec/lib/lucid_works/collection/
|
218
|
+
- spec/lib/lucid_works/collection/settings_spec.rb
|
177
219
|
- spec/lib/lucid_works/collection_spec.rb
|
178
220
|
- spec/lib/lucid_works/datasource/history_spec.rb
|
179
221
|
- spec/lib/lucid_works/datasource/schedule_spec.rb
|
180
222
|
- spec/lib/lucid_works/datasource/status_spec.rb
|
223
|
+
- spec/lib/lucid_works/datasource_property_spec.rb
|
181
224
|
- spec/lib/lucid_works/datasource_spec.rb
|
225
|
+
- spec/lib/lucid_works/datasource_type_spec.rb
|
226
|
+
- spec/lib/lucid_works/dynamicfield_spec.rb
|
227
|
+
- spec/lib/lucid_works/elevation_spec.rb
|
182
228
|
- spec/lib/lucid_works/field_spec.rb
|
183
229
|
- spec/lib/lucid_works/fieldtype_spec.rb
|
184
230
|
- spec/lib/lucid_works/patch_time_spec.rb
|
231
|
+
- spec/lib/lucid_works/request_handler_spec.rb
|
232
|
+
- spec/lib/lucid_works/role_spec.rb
|
185
233
|
- spec/lib/lucid_works/schema/attribute_spec.rb
|
186
234
|
- spec/lib/lucid_works/schema_spec.rb
|
235
|
+
- spec/lib/lucid_works/server/crawlers_status_spec.rb
|
187
236
|
- spec/lib/lucid_works/server_spec.rb
|
237
|
+
- spec/lib/lucid_works/synonym_spec.rb
|
188
238
|
- spec/lib/lucid_works/utils_spec.rb
|
239
|
+
- spec/lib/lucid_works/version_spec.rb
|
189
240
|
- spec/spec_helper.rb
|
190
241
|
- spec/support/active_model_lint.rb
|
191
242
|
- spec/support/lucid_works.rb
|
192
|
-
homepage:
|
243
|
+
homepage: http://github.com/lucidimagination/lucidworks-ruby
|
193
244
|
licenses: []
|
194
|
-
post_install_message:
|
245
|
+
post_install_message:
|
195
246
|
rdoc_options: []
|
196
247
|
require_paths:
|
197
248
|
- lib
|
198
249
|
required_ruby_version: !ruby/object:Gem::Requirement
|
199
|
-
none: false
|
200
250
|
requirements:
|
201
|
-
- -
|
251
|
+
- - ">="
|
202
252
|
- !ruby/object:Gem::Version
|
203
|
-
version:
|
204
|
-
|
253
|
+
version: !binary |-
|
254
|
+
MA==
|
205
255
|
none: false
|
256
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
257
|
requirements:
|
207
|
-
- -
|
258
|
+
- - ">="
|
208
259
|
- !ruby/object:Gem::Version
|
209
|
-
version:
|
260
|
+
version: !binary |-
|
261
|
+
MA==
|
262
|
+
none: false
|
210
263
|
requirements: []
|
211
264
|
rubyforge_project: lucid_works
|
212
|
-
rubygems_version: 1.8.
|
213
|
-
signing_key:
|
265
|
+
rubygems_version: 1.8.24
|
266
|
+
signing_key:
|
214
267
|
specification_version: 3
|
215
|
-
summary:
|
268
|
+
summary: LucidWorks REST API client
|
216
269
|
test_files:
|
217
270
|
- spec/fixtures/fake_file_ds_to_be_deleted/.gitkeep
|
218
271
|
- spec/fixtures/fake_file_ds_to_be_updated/.gitkeep
|
@@ -221,28 +274,43 @@ test_files:
|
|
221
274
|
- spec/fixtures/fake_file_ds_to_get_status_of/.gitkeep
|
222
275
|
- spec/fixtures/fake_file_ds_to_mess_with_job_of/.gitkeep
|
223
276
|
- spec/fixtures/fake_file_ds_to_test_progress/.gitkeep
|
277
|
+
- spec/fixtures/zookeeper/clusterstate.json
|
278
|
+
- spec/fixtures/zookeeper/clusterstate_broken_shard.json
|
279
|
+
- spec/fixtures/zookeeper/live_nodes.json
|
280
|
+
- spec/fixtures/zookeeper/live_nodes_no_children.json
|
281
|
+
- spec/fixtures/zookeeper/live_nodes_one_child.json
|
224
282
|
- spec/lib/lucid_works/associations/has_many_spec.rb
|
225
283
|
- spec/lib/lucid_works/associations/has_one_spec.rb
|
226
284
|
- spec/lib/lucid_works/associations_spec.rb
|
227
285
|
- spec/lib/lucid_works/base_spec.rb
|
228
|
-
- spec/lib/lucid_works/
|
286
|
+
- spec/lib/lucid_works/cache_spec.rb
|
287
|
+
- spec/lib/lucid_works/cluster_spec.rb
|
229
288
|
- spec/lib/lucid_works/collection/activity/history_spec.rb
|
230
289
|
- spec/lib/lucid_works/collection/activity/status_spec.rb
|
231
290
|
- spec/lib/lucid_works/collection/activity_spec.rb
|
232
291
|
- spec/lib/lucid_works/collection/prime_activities_spec.rb
|
233
|
-
- spec/lib/lucid_works/collection/
|
292
|
+
- spec/lib/lucid_works/collection/settings_spec.rb
|
234
293
|
- spec/lib/lucid_works/collection_spec.rb
|
235
294
|
- spec/lib/lucid_works/datasource/history_spec.rb
|
236
295
|
- spec/lib/lucid_works/datasource/schedule_spec.rb
|
237
296
|
- spec/lib/lucid_works/datasource/status_spec.rb
|
297
|
+
- spec/lib/lucid_works/datasource_property_spec.rb
|
238
298
|
- spec/lib/lucid_works/datasource_spec.rb
|
299
|
+
- spec/lib/lucid_works/datasource_type_spec.rb
|
300
|
+
- spec/lib/lucid_works/dynamicfield_spec.rb
|
301
|
+
- spec/lib/lucid_works/elevation_spec.rb
|
239
302
|
- spec/lib/lucid_works/field_spec.rb
|
240
303
|
- spec/lib/lucid_works/fieldtype_spec.rb
|
241
304
|
- spec/lib/lucid_works/patch_time_spec.rb
|
305
|
+
- spec/lib/lucid_works/request_handler_spec.rb
|
306
|
+
- spec/lib/lucid_works/role_spec.rb
|
242
307
|
- spec/lib/lucid_works/schema/attribute_spec.rb
|
243
308
|
- spec/lib/lucid_works/schema_spec.rb
|
309
|
+
- spec/lib/lucid_works/server/crawlers_status_spec.rb
|
244
310
|
- spec/lib/lucid_works/server_spec.rb
|
311
|
+
- spec/lib/lucid_works/synonym_spec.rb
|
245
312
|
- spec/lib/lucid_works/utils_spec.rb
|
313
|
+
- spec/lib/lucid_works/version_spec.rb
|
246
314
|
- spec/spec_helper.rb
|
247
315
|
- spec/support/active_model_lint.rb
|
248
316
|
- spec/support/lucid_works.rb
|
@@ -1,212 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "LucidWorks::Collection ACL configuration utility methods" do
|
4
|
-
before :all do
|
5
|
-
@server = connect_to_live_server
|
6
|
-
@server.reset_collections!
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "ACL filtering configuration" do
|
10
|
-
MAGIC_ACL_ONLY_FILTER_SETTING = {'should.clause' => '*:* -data_source_type:smb'}
|
11
|
-
before :all do
|
12
|
-
@collection = @server.create_collection(:name => 'collection_for_acl_config_testing', :parent => @server)
|
13
|
-
@initial_components = [
|
14
|
-
"filterbyrole",
|
15
|
-
"query",
|
16
|
-
"mlt",
|
17
|
-
"stats",
|
18
|
-
"feedback",
|
19
|
-
"highlight",
|
20
|
-
"facet",
|
21
|
-
"spellcheck",
|
22
|
-
"debug"
|
23
|
-
]
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '#assert_components_include_ad_xor_role' do
|
27
|
-
before do
|
28
|
-
@collection_for_xor = @server.collection('collection_for_acl_config_testing')
|
29
|
-
end
|
30
|
-
it "should not raise an exception for a new collection" do
|
31
|
-
lambda {@collection_for_xor.assert_components_include_ad_xor_role}.should_not raise_error
|
32
|
-
end
|
33
|
-
it "should raise an exception if both are present" do;
|
34
|
-
@collection_for_xor.stub(:components).and_return(@initial_components + [LucidWorks::Collection::AD_FILTERING])
|
35
|
-
lambda {@collection_for_xor.assert_components_include_ad_xor_role}.should raise_error
|
36
|
-
end
|
37
|
-
it "should raise an exception if neither are present" do
|
38
|
-
@collection_for_xor.stub(:components).and_return(@initial_components[1..-1])
|
39
|
-
lambda {@collection_for_xor.assert_components_include_ad_xor_role}.should raise_error
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "#filtering_enabled?" do
|
44
|
-
before do
|
45
|
-
@collection_for_enabled = @server.collection('collection_for_acl_config_testing')
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should be false on a new collection" do
|
49
|
-
@collection_for_enabled.filtering_enabled?.should be_false
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should be true if AD_FILTERING is in the list" do
|
53
|
-
@collection_for_enabled.stub(:components).and_return(@initial_components[1..-1]+[LucidWorks::Collection::AD_FILTERING])
|
54
|
-
@collection_for_enabled.filtering_enabled?.should be_true
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe "LucidWorks::Collection#components" do
|
59
|
-
it "should return a list of installed components" do
|
60
|
-
@collection.components.should be_a(Array)
|
61
|
-
@collection.components.sort.should == @initial_components.sort
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe '#filtering_settings' do
|
66
|
-
before do
|
67
|
-
@collection_for_settings = @server.collection('collection_for_acl_config_testing')
|
68
|
-
end
|
69
|
-
it "should return an empty hash for a new collection" do
|
70
|
-
@collection_for_settings.filtering_settings.should == {}
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
describe '#compute_component_set' do
|
75
|
-
before do
|
76
|
-
@collection_for_component_set = @server.collection('collection_for_acl_config_testing')
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should put ACL_FILTERING at the front if enabling" do
|
80
|
-
initial_components = @initial_components.clone
|
81
|
-
enabled = 'true'
|
82
|
-
@collection_for_component_set.stub(:components).and_return(initial_components)
|
83
|
-
initial_components.first.should_not == LucidWorks::Collection::AD_FILTERING
|
84
|
-
@collection_for_component_set.compute_component_set(enabled).first.should == LucidWorks::Collection::AD_FILTERING
|
85
|
-
end
|
86
|
-
|
87
|
-
it "should remove ROLE_FILTERING if enabling" do
|
88
|
-
initial_components = @initial_components.clone
|
89
|
-
enabled = 'true'
|
90
|
-
@collection_for_component_set.stub(:components).and_return(initial_components)
|
91
|
-
initial_components.include?(LucidWorks::Collection::ROLE_FILTERING).should be_true
|
92
|
-
@collection_for_component_set.compute_component_set(enabled).include?(LucidWorks::Collection::ROLE_FILTERING).should be_false
|
93
|
-
end
|
94
|
-
|
95
|
-
it "should put ROLE_FILTERING at the front if disabling" do
|
96
|
-
initial_components = @initial_components.clone
|
97
|
-
initial_components.delete(LucidWorks::Collection::ROLE_FILTERING)
|
98
|
-
initial_components.unshift(LucidWorks::Collection::AD_FILTERING)
|
99
|
-
enabled = 'false'
|
100
|
-
@collection_for_component_set.stub(:components).and_return(initial_components)
|
101
|
-
initial_components.first.should == LucidWorks::Collection::AD_FILTERING
|
102
|
-
@collection_for_component_set.compute_component_set(enabled).first.should == LucidWorks::Collection::ROLE_FILTERING
|
103
|
-
end
|
104
|
-
|
105
|
-
it "should remove ACL_FILTERING if disabling" do
|
106
|
-
initial_components = @initial_components.clone
|
107
|
-
enabled = 'false'
|
108
|
-
initial_components.delete(LucidWorks::Collection::ROLE_FILTERING)
|
109
|
-
initial_components.unshift(LucidWorks::Collection::AD_FILTERING)
|
110
|
-
@collection_for_component_set.stub(:components).and_return(initial_components)
|
111
|
-
initial_components.include?(LucidWorks::Collection::AD_FILTERING).should be_true
|
112
|
-
@collection_for_component_set.compute_component_set(enabled).include?(LucidWorks::Collection::AD_FILTERING).should be_false
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe '#configure_filtering' do
|
117
|
-
before :all do
|
118
|
-
@collection_for_configure = @server.collection('collection_for_acl_config_testing')
|
119
|
-
@settings = {
|
120
|
-
"java.naming.provider.url"=>"ldap://184.72.197.18/",
|
121
|
-
"java.naming.security.principal"=>"wma@corp.lucid.com",
|
122
|
-
"java.naming.security.credentials"=>"secret",
|
123
|
-
}
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should merge in the static settings and store all of the settings" do
|
127
|
-
final_settings = {
|
128
|
-
"provider.class"=>"com.lucid.security.ad.ADACLTagProvider",
|
129
|
-
"filterer.class"=>"com.lucid.security.WindowsACLQueryFilterer",
|
130
|
-
"provider.config"=>
|
131
|
-
{
|
132
|
-
"java.naming.provider.url"=>"ldap://184.72.197.18/",
|
133
|
-
"java.naming.security.principal"=>"wma@corp.lucid.com"
|
134
|
-
},
|
135
|
-
"filterer.config"=>{}
|
136
|
-
}
|
137
|
-
|
138
|
-
@collection_for_configure.filtering_settings.should be_blank
|
139
|
-
@collection_for_configure.configure_filtering(:config => @settings, :enabled => 'true', :acl_only => true)
|
140
|
-
@collection_for_configure.filtering_settings.should == final_settings
|
141
|
-
end
|
142
|
-
|
143
|
-
it "should work again after the settings have been saved once and a PUT is now required" do
|
144
|
-
@collection_for_configure.filtering_settings.should_not be_blank
|
145
|
-
lambda {
|
146
|
-
@collection_for_configure.configure_filtering(:config => @settings, :enabled => 'true')
|
147
|
-
}.should_not raise_error
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should add ldap:// to url if protocol not specified" do
|
151
|
-
settings = @settings.clone
|
152
|
-
settings['java.naming.provider.url'] = 'foo.com'
|
153
|
-
@collection_for_configure.configure_filtering(:config => settings, :enabled => 'true')
|
154
|
-
@collection_for_configure.filtering_settings['provider.config']['java.naming.provider.url'].should == 'ldap://foo.com'
|
155
|
-
end
|
156
|
-
|
157
|
-
it "should not add ldap:// to url if blank" do
|
158
|
-
settings = @settings.clone
|
159
|
-
settings['java.naming.provider.url'] = ''
|
160
|
-
lambda {
|
161
|
-
@collection_for_configure.configure_filtering(:config => settings, :enabled => 'true')
|
162
|
-
}.should raise_error {|e| e.messages.keys.first.should =~ /url\.no_url/} # because url is required
|
163
|
-
end
|
164
|
-
|
165
|
-
it "should add the filterer.config parameter if acl_only is false" do
|
166
|
-
settings = @settings.clone
|
167
|
-
|
168
|
-
@collection_for_configure.configure_filtering(:config => settings, :enabled => 'true', :acl_only => false)
|
169
|
-
@collection_for_configure.filtering_settings['filterer.config'].should == MAGIC_ACL_ONLY_FILTER_SETTING
|
170
|
-
end
|
171
|
-
|
172
|
-
it "should remove the filterer.config parameter if acl_only is true" do
|
173
|
-
settings = @settings.clone
|
174
|
-
filterer_config = {}
|
175
|
-
|
176
|
-
@collection_for_configure.configure_filtering(:config => settings, :enabled => 'true', :acl_only => true)
|
177
|
-
@collection_for_configure.filtering_settings['filterer.config'].should == filterer_config
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
describe '#acl_only?' do
|
182
|
-
before :all do
|
183
|
-
@collection_for_acl_only = @server.create_collection(:name => 'collection_for_acl_only_testing', :parent => @server)
|
184
|
-
@settings = {
|
185
|
-
"java.naming.provider.url"=>"ldap://184.72.197.18/",
|
186
|
-
"java.naming.security.principal"=>"wma@corp.lucid.com",
|
187
|
-
"java.naming.security.credentials"=>"secret",
|
188
|
-
}
|
189
|
-
end
|
190
|
-
|
191
|
-
it "should default to false for a new collection" do
|
192
|
-
@collection_for_acl_only_default = @server.create_collection(:name => 'collection_for_acl_only_default_testing', :parent => @server)
|
193
|
-
@collection_for_acl_only.acl_only?.should be_false
|
194
|
-
end
|
195
|
-
|
196
|
-
it "should return true if the if configured with acl_only => true" do
|
197
|
-
settings = @settings.clone
|
198
|
-
|
199
|
-
@collection_for_acl_only.configure_filtering(:config => settings, :enabled => 'true', :acl_only => true)
|
200
|
-
@collection_for_acl_only.acl_only?.should be_true
|
201
|
-
end
|
202
|
-
|
203
|
-
it "should return false if configured with acl_only => false" do
|
204
|
-
settings = @settings.clone
|
205
|
-
|
206
|
-
@collection_for_acl_only.configure_filtering(:config => settings, :enabled => 'true', :acl_only => false)
|
207
|
-
@collection_for_acl_only.acl_only?.should be_false
|
208
|
-
end
|
209
|
-
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|