cmis_server 1.0.3
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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +51 -0
- data/app/assets/javascripts/cmis_server/application.js +13 -0
- data/app/assets/stylesheets/cmis_server/application.css +15 -0
- data/app/controllers/cmis_server/application_controller.rb +19 -0
- data/app/controllers/cmis_server/atom_pub/base_controller.rb +23 -0
- data/app/controllers/cmis_server/atom_pub/bulk_controller.rb +302 -0
- data/app/controllers/cmis_server/atom_pub/content_controller.rb +178 -0
- data/app/controllers/cmis_server/atom_pub/entries_controller.rb +41 -0
- data/app/controllers/cmis_server/atom_pub/folder_collection_controller.rb +70 -0
- data/app/controllers/cmis_server/atom_pub/query_controller.rb +138 -0
- data/app/controllers/cmis_server/atom_pub/repository_controller.rb +75 -0
- data/app/controllers/cmis_server/atom_pub/secondary_types_controller.rb +149 -0
- data/app/controllers/cmis_server/atom_pub/service_documents_controller.rb +34 -0
- data/app/controllers/cmis_server/atom_pub/types_controller.rb +229 -0
- data/app/controllers/cmis_server/atom_pub/uri_templates_controller.rb +58 -0
- data/app/controllers/concerns/cmis_server/atom_pub/repository_scopable.rb +18 -0
- data/app/helpers/cmis_server/application_helper.rb +31 -0
- data/app/models/cmis_server/application_record.rb +5 -0
- data/app/services/cmis_server/bulk_update_service.rb +69 -0
- data/app/services/cmis_server/content_stream_service.rb +75 -0
- data/app/services/cmis_server/discovery_service.rb +31 -0
- data/app/services/cmis_server/navigation_service.rb +43 -0
- data/app/services/cmis_server/object_service.rb +176 -0
- data/app/services/cmis_server/repository_service.rb +40 -0
- data/app/services/cmis_server/secondary_type_service.rb +120 -0
- data/app/services/cmis_server/type_management_service.rb +117 -0
- data/app/views/cmis_server/atom_pub/bulk_update_feed.atom.builder +47 -0
- data/app/views/cmis_server/atom_pub/entries/_cmis_document_links.atom_entry.builder +0 -0
- data/app/views/cmis_server/atom_pub/entries/_cmis_folder_links.atom_entry.builder +3 -0
- data/app/views/cmis_server/atom_pub/entries/_object_entry.atom_entry.builder +64 -0
- data/app/views/cmis_server/atom_pub/entries/_property.atom_entry.builder +8 -0
- data/app/views/cmis_server/atom_pub/entries/object_entry.atom_entry.builder +1 -0
- data/app/views/cmis_server/atom_pub/entries/type_entry.atom_entry.builder +59 -0
- data/app/views/cmis_server/atom_pub/feeds/_feed_entry.atom_feed.builder +1 -0
- data/app/views/cmis_server/atom_pub/feeds/feed.atom_feed.builder +30 -0
- data/app/views/cmis_server/atom_pub/service_documents/_uri_template.atom_service.builder +5 -0
- data/app/views/cmis_server/atom_pub/service_documents/_workspace.atom_service.builder +89 -0
- data/app/views/cmis_server/atom_pub/service_documents/service_document.atom_service.builder +1 -0
- data/app/views/cmis_server/atom_pub/shared/_collection.xml.builder +7 -0
- data/app/views/cmis_server/atom_pub/shared/atom_entry_layout.atom_entry.builder +0 -0
- data/app/views/cmis_server/atom_pub/type_entry.atom.builder +69 -0
- data/app/views/cmis_server/atom_pub/types_feed.atom.builder +91 -0
- data/app/views/layouts/cmis_server/application.atom_entry.builder +2 -0
- data/app/views/layouts/cmis_server/application.atom_feed.builder +3 -0
- data/app/views/layouts/cmis_server/application.atom_service.builder +10 -0
- data/app/views/layouts/cmis_server/application.html.erb +14 -0
- data/config/routes.rb +49 -0
- data/lib/cmis_server/atom_pub/entry_parser.rb +72 -0
- data/lib/cmis_server/base_objects/base_type.rb +128 -0
- data/lib/cmis_server/base_objects/document.rb +68 -0
- data/lib/cmis_server/base_objects/folder.rb +104 -0
- data/lib/cmis_server/base_objects/item.rb +25 -0
- data/lib/cmis_server/base_types.rb +123 -0
- data/lib/cmis_server/cmis_object.rb +190 -0
- data/lib/cmis_server/configuration.rb +43 -0
- data/lib/cmis_server/constants.rb +8 -0
- data/lib/cmis_server/content_stream.rb +52 -0
- data/lib/cmis_server/context.rb +11 -0
- data/lib/cmis_server/document_object.rb +12 -0
- data/lib/cmis_server/document_type.rb +67 -0
- data/lib/cmis_server/engine.rb +60 -0
- data/lib/cmis_server/exceptions.rb +185 -0
- data/lib/cmis_server/folder_object.rb +18 -0
- data/lib/cmis_server/folder_type.rb +34 -0
- data/lib/cmis_server/id.rb +18 -0
- data/lib/cmis_server/item_adapter.rb +26 -0
- data/lib/cmis_server/item_object.rb +15 -0
- data/lib/cmis_server/item_type.rb +7 -0
- data/lib/cmis_server/object_adapter.rb +79 -0
- data/lib/cmis_server/property.rb +29 -0
- data/lib/cmis_server/property_definition.rb +118 -0
- data/lib/cmis_server/query/parser.output +2250 -0
- data/lib/cmis_server/query/parser.racc +222 -0
- data/lib/cmis_server/query/parser.racc.rb +1039 -0
- data/lib/cmis_server/query/parser.rex +114 -0
- data/lib/cmis_server/query/parser.rex.rb +238 -0
- data/lib/cmis_server/query/statement.rb +395 -0
- data/lib/cmis_server/query.rb +2 -0
- data/lib/cmis_server/renderable_collection.rb +45 -0
- data/lib/cmis_server/renderable_object.rb +49 -0
- data/lib/cmis_server/repository.rb +91 -0
- data/lib/cmis_server/secondary_type.rb +11 -0
- data/lib/cmis_server/type.rb +62 -0
- data/lib/cmis_server/type_registry.rb +115 -0
- data/lib/cmis_server/version.rb +4 -0
- data/lib/cmis_server.rb +22 -0
- data/lib/tasks/cmis_server_tasks.rake +4 -0
- data/test/cmis_server_test.rb +7 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +8 -0
- data/test/services/bulk_update_service_test.rb +121 -0
- data/test/services/content_stream_service_test.rb +176 -0
- data/test/services/secondary_type_service_test.rb +174 -0
- data/test/services/type_management_service_test.rb +146 -0
- data/test/test_helper.rb +16 -0
- metadata +326 -0
@@ -0,0 +1,174 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module CmisServer
|
4
|
+
class SecondaryTypeServiceTest < ActiveSupport::TestCase
|
5
|
+
setup do
|
6
|
+
# Configuration du repository avec les capacités CMIS 1.1
|
7
|
+
@repository = Repository.new(
|
8
|
+
id: "test_repo",
|
9
|
+
name: "Test Repository",
|
10
|
+
description: "Test repository for CMIS 1.1 features"
|
11
|
+
)
|
12
|
+
|
13
|
+
# Créer un contexte avec le repository
|
14
|
+
@context = { repository: @repository }
|
15
|
+
|
16
|
+
# Service de gestion des types secondaires
|
17
|
+
@service = SecondaryTypeService.new(@context)
|
18
|
+
|
19
|
+
# Créer un type secondaire pour les tests
|
20
|
+
@secondary_type = SecondaryType.new(
|
21
|
+
id: "custom:markedForArchive",
|
22
|
+
local_name: "markedForArchive",
|
23
|
+
display_name: "Marked for Archive",
|
24
|
+
query_name: "custom:markedForArchive",
|
25
|
+
description: "Documents that should be archived",
|
26
|
+
base_id: "cmis:secondary",
|
27
|
+
creatable: true,
|
28
|
+
fileable: false,
|
29
|
+
queryable: true
|
30
|
+
)
|
31
|
+
|
32
|
+
# Ajouter une propriété au type secondaire
|
33
|
+
@secondary_type.add_property_definition(
|
34
|
+
PropertyDefinition.new(
|
35
|
+
id: "custom:archiveDate",
|
36
|
+
local_name: "archiveDate",
|
37
|
+
display_name: "Archive Date",
|
38
|
+
query_name: "custom:archiveDate",
|
39
|
+
description: "Date when the document should be archived",
|
40
|
+
property_type: "datetime",
|
41
|
+
cardinality: :single,
|
42
|
+
updatability: :readwrite,
|
43
|
+
required: false,
|
44
|
+
queryable: true,
|
45
|
+
orderable: true
|
46
|
+
)
|
47
|
+
)
|
48
|
+
|
49
|
+
# Ajouter le type secondaire au repository
|
50
|
+
@repository.add_type(@secondary_type)
|
51
|
+
|
52
|
+
# Créer un document pour les tests
|
53
|
+
@document = DocumentObject.new(
|
54
|
+
type: DocumentType.base,
|
55
|
+
properties: {
|
56
|
+
cmis_object_id: "test-doc",
|
57
|
+
cmis_name: "Document de test",
|
58
|
+
cmis_description: "Document pour tester les types secondaires"
|
59
|
+
}
|
60
|
+
)
|
61
|
+
|
62
|
+
@repository.add_object(@document)
|
63
|
+
end
|
64
|
+
|
65
|
+
test "add secondary type to document" do
|
66
|
+
# Ajouter le type secondaire au document
|
67
|
+
result = @service.add_secondary_type("test-doc", "custom:markedForArchive")
|
68
|
+
|
69
|
+
# Vérifier que l'ajout a réussi
|
70
|
+
assert result, "L'ajout du type secondaire devrait réussir"
|
71
|
+
|
72
|
+
# Récupérer le document mis à jour
|
73
|
+
updated_document = @repository.object("test-doc")
|
74
|
+
|
75
|
+
# Vérifier que le type secondaire a été ajouté
|
76
|
+
assert_includes updated_document.secondary_type_ids, "custom:markedForArchive",
|
77
|
+
"Le type secondaire devrait être ajouté à la liste des types secondaires"
|
78
|
+
|
79
|
+
# Vérifier que les propriétés du type secondaire sont disponibles
|
80
|
+
assert updated_document.properties.has_key?("custom:archiveDate"),
|
81
|
+
"Les propriétés du type secondaire devraient être ajoutées au document"
|
82
|
+
end
|
83
|
+
|
84
|
+
test "set secondary type property" do
|
85
|
+
# Ajouter d'abord le type secondaire
|
86
|
+
@service.add_secondary_type("test-doc", "custom:markedForArchive")
|
87
|
+
|
88
|
+
# Récupérer le document
|
89
|
+
document = @repository.object("test-doc")
|
90
|
+
|
91
|
+
# Définir une valeur pour la propriété du type secondaire
|
92
|
+
archive_date = DateTime.new(2025, 12, 31)
|
93
|
+
document.properties["custom:archiveDate"].value = archive_date
|
94
|
+
|
95
|
+
# Enregistrer le document
|
96
|
+
@repository.update_object(document)
|
97
|
+
|
98
|
+
# Récupérer le document mis à jour
|
99
|
+
updated_document = @repository.object("test-doc")
|
100
|
+
|
101
|
+
# Vérifier que la valeur de la propriété a été enregistrée
|
102
|
+
assert_equal archive_date, updated_document.properties["custom:archiveDate"].value,
|
103
|
+
"La valeur de la propriété du type secondaire devrait être enregistrée"
|
104
|
+
end
|
105
|
+
|
106
|
+
test "remove secondary type from document" do
|
107
|
+
# Ajouter d'abord le type secondaire
|
108
|
+
@service.add_secondary_type("test-doc", "custom:markedForArchive")
|
109
|
+
|
110
|
+
# Définir une valeur pour la propriété du type secondaire
|
111
|
+
document = @repository.object("test-doc")
|
112
|
+
document.properties["custom:archiveDate"].value = DateTime.new(2025, 12, 31)
|
113
|
+
@repository.update_object(document)
|
114
|
+
|
115
|
+
# Supprimer le type secondaire
|
116
|
+
result = @service.remove_secondary_type("test-doc", "custom:markedForArchive")
|
117
|
+
|
118
|
+
# Vérifier que la suppression a réussi
|
119
|
+
assert result, "La suppression du type secondaire devrait réussir"
|
120
|
+
|
121
|
+
# Récupérer le document mis à jour
|
122
|
+
updated_document = @repository.object("test-doc")
|
123
|
+
|
124
|
+
# Vérifier que le type secondaire a été supprimé
|
125
|
+
assert_not_includes updated_document.secondary_type_ids, "custom:markedForArchive",
|
126
|
+
"Le type secondaire devrait être supprimé de la liste"
|
127
|
+
|
128
|
+
# Vérifier que les propriétés du type secondaire ne sont plus disponibles
|
129
|
+
assert_not updated_document.properties.has_key?("custom:archiveDate"),
|
130
|
+
"Les propriétés du type secondaire devraient être supprimées du document"
|
131
|
+
end
|
132
|
+
|
133
|
+
test "add multiple secondary types" do
|
134
|
+
# Créer un deuxième type secondaire
|
135
|
+
second_type = SecondaryType.new(
|
136
|
+
id: "custom:confidential",
|
137
|
+
display_name: "Confidential",
|
138
|
+
base_id: "cmis:secondary"
|
139
|
+
)
|
140
|
+
|
141
|
+
# Ajouter une propriété
|
142
|
+
second_type.add_property_definition(
|
143
|
+
PropertyDefinition.new(
|
144
|
+
id: "custom:confidentialityLevel",
|
145
|
+
display_name: "Confidentiality Level",
|
146
|
+
property_type: "integer",
|
147
|
+
cardinality: :single
|
148
|
+
)
|
149
|
+
)
|
150
|
+
|
151
|
+
# Ajouter le type au repository
|
152
|
+
@repository.add_type(second_type)
|
153
|
+
|
154
|
+
# Ajouter les deux types secondaires au document
|
155
|
+
@service.add_secondary_type("test-doc", "custom:markedForArchive")
|
156
|
+
@service.add_secondary_type("test-doc", "custom:confidential")
|
157
|
+
|
158
|
+
# Récupérer le document mis à jour
|
159
|
+
updated_document = @repository.object("test-doc")
|
160
|
+
|
161
|
+
# Vérifier que les deux types secondaires ont été ajoutés
|
162
|
+
assert_includes updated_document.secondary_type_ids, "custom:markedForArchive",
|
163
|
+
"Le premier type secondaire devrait être ajouté"
|
164
|
+
assert_includes updated_document.secondary_type_ids, "custom:confidential",
|
165
|
+
"Le deuxième type secondaire devrait être ajouté"
|
166
|
+
|
167
|
+
# Vérifier que les propriétés des deux types sont disponibles
|
168
|
+
assert updated_document.properties.has_key?("custom:archiveDate"),
|
169
|
+
"Les propriétés du premier type secondaire devraient être disponibles"
|
170
|
+
assert updated_document.properties.has_key?("custom:confidentialityLevel"),
|
171
|
+
"Les propriétés du deuxième type secondaire devraient être disponibles"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module CmisServer
|
4
|
+
class TypeManagementServiceTest < ActiveSupport::TestCase
|
5
|
+
setup do
|
6
|
+
# Configuration du repository avec les capacités CMIS 1.1
|
7
|
+
@repository = Repository.new(
|
8
|
+
id: "test_repo",
|
9
|
+
name: "Test Repository",
|
10
|
+
description: "Test repository for CMIS 1.1 features",
|
11
|
+
capabilities: {
|
12
|
+
create_type: true,
|
13
|
+
update_type: true,
|
14
|
+
delete_type: true
|
15
|
+
}
|
16
|
+
)
|
17
|
+
|
18
|
+
# Créer un contexte avec le repository
|
19
|
+
@context = { repository: @repository }
|
20
|
+
|
21
|
+
# Service de gestion des types
|
22
|
+
@service = TypeManagementService.new(@context)
|
23
|
+
end
|
24
|
+
|
25
|
+
test "create new document type" do
|
26
|
+
# Créer un nouveau type document
|
27
|
+
new_type = DocumentType.new(
|
28
|
+
id: "custom:testDocument",
|
29
|
+
parent_id: "cmis:document",
|
30
|
+
local_name: "testDocument",
|
31
|
+
display_name: "Test Document Type",
|
32
|
+
query_name: "custom:testDocument",
|
33
|
+
description: "A test document type for CMIS 1.1",
|
34
|
+
base_id: "cmis:document",
|
35
|
+
creatable: true,
|
36
|
+
fileable: true,
|
37
|
+
queryable: true,
|
38
|
+
controllable_policy: false,
|
39
|
+
controllable_acl: false,
|
40
|
+
fulltext_indexed: true,
|
41
|
+
included_in_supertype_query: true
|
42
|
+
)
|
43
|
+
|
44
|
+
# Ajouter une propriété au type
|
45
|
+
new_type.add_property_definition(
|
46
|
+
PropertyDefinition.new(
|
47
|
+
id: "custom:priority",
|
48
|
+
local_name: "priority",
|
49
|
+
display_name: "Priority",
|
50
|
+
query_name: "custom:priority",
|
51
|
+
description: "Document priority",
|
52
|
+
property_type: "integer",
|
53
|
+
cardinality: :single,
|
54
|
+
updatability: :readwrite,
|
55
|
+
required: false,
|
56
|
+
queryable: true,
|
57
|
+
orderable: true
|
58
|
+
)
|
59
|
+
)
|
60
|
+
|
61
|
+
# Créer le type dans le repository
|
62
|
+
result = @service.create_type(new_type)
|
63
|
+
|
64
|
+
assert_not_nil result, "Le type devrait être créé"
|
65
|
+
assert_equal "custom:testDocument", result.id, "L'ID du type devrait correspondre"
|
66
|
+
assert_includes @repository.types.keys, "custom:testDocument", "Le type devrait être ajouté au repository"
|
67
|
+
end
|
68
|
+
|
69
|
+
test "update existing type" do
|
70
|
+
# Créer d'abord un type
|
71
|
+
original_type = DocumentType.new(
|
72
|
+
id: "custom:updateTest",
|
73
|
+
parent_id: "cmis:document",
|
74
|
+
display_name: "Original Type",
|
75
|
+
description: "Original description"
|
76
|
+
)
|
77
|
+
@repository.add_type(original_type)
|
78
|
+
|
79
|
+
# Modifier le type
|
80
|
+
updated_type = original_type.clone
|
81
|
+
updated_type.display_name = "Updated Type"
|
82
|
+
updated_type.description = "Updated description"
|
83
|
+
|
84
|
+
# Ajouter une nouvelle propriété
|
85
|
+
updated_type.add_property_definition(
|
86
|
+
PropertyDefinition.new(
|
87
|
+
id: "custom:newProperty",
|
88
|
+
display_name: "New Property",
|
89
|
+
property_type: "string",
|
90
|
+
cardinality: :single
|
91
|
+
)
|
92
|
+
)
|
93
|
+
|
94
|
+
# Mettre à jour le type dans le repository
|
95
|
+
result = @service.update_type(updated_type)
|
96
|
+
|
97
|
+
assert_not_nil result, "Le type mis à jour devrait être retourné"
|
98
|
+
assert_equal "Updated Type", result.display_name, "Le nom d'affichage devrait être mis à jour"
|
99
|
+
assert_equal "Updated description", result.description, "La description devrait être mise à jour"
|
100
|
+
|
101
|
+
# Vérifier que la propriété a été ajoutée
|
102
|
+
assert result.property_definitions.has_key?("custom:newProperty"), "La nouvelle propriété devrait être ajoutée"
|
103
|
+
end
|
104
|
+
|
105
|
+
test "delete unused type" do
|
106
|
+
# Créer un type pour le test
|
107
|
+
test_type = DocumentType.new(
|
108
|
+
id: "custom:typeToDelete",
|
109
|
+
parent_id: "cmis:document",
|
110
|
+
display_name: "Type to Delete"
|
111
|
+
)
|
112
|
+
@repository.add_type(test_type)
|
113
|
+
|
114
|
+
# Vérifier que le type existe
|
115
|
+
assert_includes @repository.types.keys, "custom:typeToDelete", "Le type devrait exister avant la suppression"
|
116
|
+
|
117
|
+
# Supprimer le type
|
118
|
+
result = @service.delete_type("custom:typeToDelete")
|
119
|
+
|
120
|
+
assert result, "La suppression devrait réussir"
|
121
|
+
assert_not_includes @repository.types.keys, "custom:typeToDelete", "Le type devrait être supprimé du repository"
|
122
|
+
end
|
123
|
+
|
124
|
+
test "cannot delete type with instances" do
|
125
|
+
# Créer un type pour le test
|
126
|
+
test_type = DocumentType.new(
|
127
|
+
id: "custom:typeWithInstances",
|
128
|
+
parent_id: "cmis:document",
|
129
|
+
display_name: "Type with Instances"
|
130
|
+
)
|
131
|
+
@repository.add_type(test_type)
|
132
|
+
|
133
|
+
# Simuler un document utilisant ce type
|
134
|
+
document = DocumentObject.new(type: test_type)
|
135
|
+
@repository.add_object(document)
|
136
|
+
|
137
|
+
# Tenter de supprimer le type
|
138
|
+
assert_raises(CmisServer::TypeManagementService::DeleteTypeError) do
|
139
|
+
@service.delete_type("custom:typeWithInstances")
|
140
|
+
end
|
141
|
+
|
142
|
+
# Vérifier que le type existe toujours
|
143
|
+
assert_includes @repository.types.keys, "custom:typeWithInstances", "Le type ne devrait pas être supprimé"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Configure Rails Environment
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
|
4
|
+
require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
|
5
|
+
require "rails/test_help"
|
6
|
+
|
7
|
+
# Load support files
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
9
|
+
|
10
|
+
# Load fixtures from the engine
|
11
|
+
if ActiveSupport::TestCase.respond_to?(:fixture_path=)
|
12
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
13
|
+
ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
|
14
|
+
ActiveSupport::TestCase.fixtures :all
|
15
|
+
end
|
16
|
+
|
metadata
ADDED
@@ -0,0 +1,326 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cmis_server
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Olivier Dirrenberger
|
8
|
+
bindir: bin
|
9
|
+
cert_chain: []
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
|
+
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: rails
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 7.1.3
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - "~>"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 7.1.3
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: racc
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.8.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.8.0
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: mime-types
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.5'
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.5'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: sqlite3
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 1.6.0
|
61
|
+
type: :development
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.6.0
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rake
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '13.2'
|
75
|
+
type: :development
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '13.2'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rspec
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '3.13'
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3.13'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rexical
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 1.0.7
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.7
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: pry-byebug
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
type: :development
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
description: CMIS 1.1 server implementation to expose CMIS repositeries through rails
|
125
|
+
app
|
126
|
+
email:
|
127
|
+
- olivier.dirrenberger@sinoia.fr
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- MIT-LICENSE
|
133
|
+
- README.rdoc
|
134
|
+
- Rakefile
|
135
|
+
- app/assets/javascripts/cmis_server/application.js
|
136
|
+
- app/assets/stylesheets/cmis_server/application.css
|
137
|
+
- app/controllers/cmis_server/application_controller.rb
|
138
|
+
- app/controllers/cmis_server/atom_pub/base_controller.rb
|
139
|
+
- app/controllers/cmis_server/atom_pub/bulk_controller.rb
|
140
|
+
- app/controllers/cmis_server/atom_pub/content_controller.rb
|
141
|
+
- app/controllers/cmis_server/atom_pub/entries_controller.rb
|
142
|
+
- app/controllers/cmis_server/atom_pub/folder_collection_controller.rb
|
143
|
+
- app/controllers/cmis_server/atom_pub/query_controller.rb
|
144
|
+
- app/controllers/cmis_server/atom_pub/repository_controller.rb
|
145
|
+
- app/controllers/cmis_server/atom_pub/secondary_types_controller.rb
|
146
|
+
- app/controllers/cmis_server/atom_pub/service_documents_controller.rb
|
147
|
+
- app/controllers/cmis_server/atom_pub/types_controller.rb
|
148
|
+
- app/controllers/cmis_server/atom_pub/uri_templates_controller.rb
|
149
|
+
- app/controllers/concerns/cmis_server/atom_pub/repository_scopable.rb
|
150
|
+
- app/helpers/cmis_server/application_helper.rb
|
151
|
+
- app/models/cmis_server/application_record.rb
|
152
|
+
- app/services/cmis_server/bulk_update_service.rb
|
153
|
+
- app/services/cmis_server/content_stream_service.rb
|
154
|
+
- app/services/cmis_server/discovery_service.rb
|
155
|
+
- app/services/cmis_server/navigation_service.rb
|
156
|
+
- app/services/cmis_server/object_service.rb
|
157
|
+
- app/services/cmis_server/repository_service.rb
|
158
|
+
- app/services/cmis_server/secondary_type_service.rb
|
159
|
+
- app/services/cmis_server/type_management_service.rb
|
160
|
+
- app/views/cmis_server/atom_pub/bulk_update_feed.atom.builder
|
161
|
+
- app/views/cmis_server/atom_pub/entries/_cmis_document_links.atom_entry.builder
|
162
|
+
- app/views/cmis_server/atom_pub/entries/_cmis_folder_links.atom_entry.builder
|
163
|
+
- app/views/cmis_server/atom_pub/entries/_object_entry.atom_entry.builder
|
164
|
+
- app/views/cmis_server/atom_pub/entries/_property.atom_entry.builder
|
165
|
+
- app/views/cmis_server/atom_pub/entries/object_entry.atom_entry.builder
|
166
|
+
- app/views/cmis_server/atom_pub/entries/type_entry.atom_entry.builder
|
167
|
+
- app/views/cmis_server/atom_pub/feeds/_feed_entry.atom_feed.builder
|
168
|
+
- app/views/cmis_server/atom_pub/feeds/feed.atom_feed.builder
|
169
|
+
- app/views/cmis_server/atom_pub/service_documents/_uri_template.atom_service.builder
|
170
|
+
- app/views/cmis_server/atom_pub/service_documents/_workspace.atom_service.builder
|
171
|
+
- app/views/cmis_server/atom_pub/service_documents/service_document.atom_service.builder
|
172
|
+
- app/views/cmis_server/atom_pub/shared/_collection.xml.builder
|
173
|
+
- app/views/cmis_server/atom_pub/shared/atom_entry_layout.atom_entry.builder
|
174
|
+
- app/views/cmis_server/atom_pub/type_entry.atom.builder
|
175
|
+
- app/views/cmis_server/atom_pub/types_feed.atom.builder
|
176
|
+
- app/views/layouts/cmis_server/application.atom_entry.builder
|
177
|
+
- app/views/layouts/cmis_server/application.atom_feed.builder
|
178
|
+
- app/views/layouts/cmis_server/application.atom_service.builder
|
179
|
+
- app/views/layouts/cmis_server/application.html.erb
|
180
|
+
- config/routes.rb
|
181
|
+
- lib/cmis_server.rb
|
182
|
+
- lib/cmis_server/atom_pub/entry_parser.rb
|
183
|
+
- lib/cmis_server/base_objects/base_type.rb
|
184
|
+
- lib/cmis_server/base_objects/document.rb
|
185
|
+
- lib/cmis_server/base_objects/folder.rb
|
186
|
+
- lib/cmis_server/base_objects/item.rb
|
187
|
+
- lib/cmis_server/base_types.rb
|
188
|
+
- lib/cmis_server/cmis_object.rb
|
189
|
+
- lib/cmis_server/configuration.rb
|
190
|
+
- lib/cmis_server/constants.rb
|
191
|
+
- lib/cmis_server/content_stream.rb
|
192
|
+
- lib/cmis_server/context.rb
|
193
|
+
- lib/cmis_server/document_object.rb
|
194
|
+
- lib/cmis_server/document_type.rb
|
195
|
+
- lib/cmis_server/engine.rb
|
196
|
+
- lib/cmis_server/exceptions.rb
|
197
|
+
- lib/cmis_server/folder_object.rb
|
198
|
+
- lib/cmis_server/folder_type.rb
|
199
|
+
- lib/cmis_server/id.rb
|
200
|
+
- lib/cmis_server/item_adapter.rb
|
201
|
+
- lib/cmis_server/item_object.rb
|
202
|
+
- lib/cmis_server/item_type.rb
|
203
|
+
- lib/cmis_server/object_adapter.rb
|
204
|
+
- lib/cmis_server/property.rb
|
205
|
+
- lib/cmis_server/property_definition.rb
|
206
|
+
- lib/cmis_server/query.rb
|
207
|
+
- lib/cmis_server/query/parser.output
|
208
|
+
- lib/cmis_server/query/parser.racc
|
209
|
+
- lib/cmis_server/query/parser.racc.rb
|
210
|
+
- lib/cmis_server/query/parser.rex
|
211
|
+
- lib/cmis_server/query/parser.rex.rb
|
212
|
+
- lib/cmis_server/query/statement.rb
|
213
|
+
- lib/cmis_server/renderable_collection.rb
|
214
|
+
- lib/cmis_server/renderable_object.rb
|
215
|
+
- lib/cmis_server/repository.rb
|
216
|
+
- lib/cmis_server/secondary_type.rb
|
217
|
+
- lib/cmis_server/type.rb
|
218
|
+
- lib/cmis_server/type_registry.rb
|
219
|
+
- lib/cmis_server/version.rb
|
220
|
+
- lib/tasks/cmis_server_tasks.rake
|
221
|
+
- test/cmis_server_test.rb
|
222
|
+
- test/dummy/README.rdoc
|
223
|
+
- test/dummy/Rakefile
|
224
|
+
- test/dummy/app/assets/javascripts/application.js
|
225
|
+
- test/dummy/app/assets/stylesheets/application.css
|
226
|
+
- test/dummy/app/controllers/application_controller.rb
|
227
|
+
- test/dummy/app/helpers/application_helper.rb
|
228
|
+
- test/dummy/app/views/layouts/application.html.erb
|
229
|
+
- test/dummy/bin/bundle
|
230
|
+
- test/dummy/bin/rails
|
231
|
+
- test/dummy/bin/rake
|
232
|
+
- test/dummy/bin/setup
|
233
|
+
- test/dummy/config.ru
|
234
|
+
- test/dummy/config/application.rb
|
235
|
+
- test/dummy/config/boot.rb
|
236
|
+
- test/dummy/config/database.yml
|
237
|
+
- test/dummy/config/environment.rb
|
238
|
+
- test/dummy/config/environments/development.rb
|
239
|
+
- test/dummy/config/environments/production.rb
|
240
|
+
- test/dummy/config/environments/test.rb
|
241
|
+
- test/dummy/config/initializers/assets.rb
|
242
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
243
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
244
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
245
|
+
- test/dummy/config/initializers/inflections.rb
|
246
|
+
- test/dummy/config/initializers/mime_types.rb
|
247
|
+
- test/dummy/config/initializers/session_store.rb
|
248
|
+
- test/dummy/config/initializers/to_time_preserves_timezone.rb
|
249
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
250
|
+
- test/dummy/config/locales/en.yml
|
251
|
+
- test/dummy/config/routes.rb
|
252
|
+
- test/dummy/config/secrets.yml
|
253
|
+
- test/dummy/public/404.html
|
254
|
+
- test/dummy/public/422.html
|
255
|
+
- test/dummy/public/500.html
|
256
|
+
- test/dummy/public/favicon.ico
|
257
|
+
- test/integration/navigation_test.rb
|
258
|
+
- test/services/bulk_update_service_test.rb
|
259
|
+
- test/services/content_stream_service_test.rb
|
260
|
+
- test/services/secondary_type_service_test.rb
|
261
|
+
- test/services/type_management_service_test.rb
|
262
|
+
- test/test_helper.rb
|
263
|
+
homepage: https://code.plugandwork.net/plugandwork/cmis_server
|
264
|
+
licenses:
|
265
|
+
- MIT
|
266
|
+
metadata: {}
|
267
|
+
rdoc_options: []
|
268
|
+
require_paths:
|
269
|
+
- lib
|
270
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
271
|
+
requirements:
|
272
|
+
- - ">="
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: 3.2.0
|
275
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '0'
|
280
|
+
requirements: []
|
281
|
+
rubygems_version: 3.6.7
|
282
|
+
specification_version: 4
|
283
|
+
summary: Ruby CMIS Server engine for rails apps
|
284
|
+
test_files:
|
285
|
+
- test/cmis_server_test.rb
|
286
|
+
- test/dummy/README.rdoc
|
287
|
+
- test/dummy/Rakefile
|
288
|
+
- test/dummy/app/assets/javascripts/application.js
|
289
|
+
- test/dummy/app/assets/stylesheets/application.css
|
290
|
+
- test/dummy/app/controllers/application_controller.rb
|
291
|
+
- test/dummy/app/helpers/application_helper.rb
|
292
|
+
- test/dummy/app/views/layouts/application.html.erb
|
293
|
+
- test/dummy/bin/bundle
|
294
|
+
- test/dummy/bin/rails
|
295
|
+
- test/dummy/bin/rake
|
296
|
+
- test/dummy/bin/setup
|
297
|
+
- test/dummy/config.ru
|
298
|
+
- test/dummy/config/application.rb
|
299
|
+
- test/dummy/config/boot.rb
|
300
|
+
- test/dummy/config/database.yml
|
301
|
+
- test/dummy/config/environment.rb
|
302
|
+
- test/dummy/config/environments/development.rb
|
303
|
+
- test/dummy/config/environments/production.rb
|
304
|
+
- test/dummy/config/environments/test.rb
|
305
|
+
- test/dummy/config/initializers/assets.rb
|
306
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
307
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
308
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
309
|
+
- test/dummy/config/initializers/inflections.rb
|
310
|
+
- test/dummy/config/initializers/mime_types.rb
|
311
|
+
- test/dummy/config/initializers/session_store.rb
|
312
|
+
- test/dummy/config/initializers/to_time_preserves_timezone.rb
|
313
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
314
|
+
- test/dummy/config/locales/en.yml
|
315
|
+
- test/dummy/config/routes.rb
|
316
|
+
- test/dummy/config/secrets.yml
|
317
|
+
- test/dummy/public/404.html
|
318
|
+
- test/dummy/public/422.html
|
319
|
+
- test/dummy/public/500.html
|
320
|
+
- test/dummy/public/favicon.ico
|
321
|
+
- test/integration/navigation_test.rb
|
322
|
+
- test/services/bulk_update_service_test.rb
|
323
|
+
- test/services/content_stream_service_test.rb
|
324
|
+
- test/services/secondary_type_service_test.rb
|
325
|
+
- test/services/type_management_service_test.rb
|
326
|
+
- test/test_helper.rb
|