pageflow-support 15.0.2 → 15.1.0.beta1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fcf74baa8a5dce069a5ea79bee3f65d0bf0a2e58fb87a28b97584f7b968fb2b0
4
- data.tar.gz: 0145badd0e717f9667ee41072789281792e0fed297cad6b638d665a02421c273
3
+ metadata.gz: 7b94611bd3278be41548b0eab58d691a11ac90368a2e86af2a780d6d15711502
4
+ data.tar.gz: 7e208340f49c6e4b9eda72b8c4d1bed849ca36df0b7e8a67458449d054afb52a
5
5
  SHA512:
6
- metadata.gz: 585c074f669c94d4a7e7d5235e5b1d9ea67441c7fdd1c8b77674351d94a684fa013165c2e190d28b3c9bdff76b1fce142c1662209cf2b23058853d20ff8fa894
7
- data.tar.gz: c86c1ac2c802a4723dc489f935f2c997a4c372cc1d36c0e0d84a2129f612d8227d221c385b3fe0d5a8491376b49a0a36e1b2266fe9b26b59ded24039783a270b
6
+ metadata.gz: 800bc37e0b3c583b8eb039e0a71671cc02e73b5697d9354ae2d6a650f8ca316fdc2e3725580a676d7692a43b06cdca3b9ea56e59c37ba8e7fe6b8e2ca9419f6b
7
+ data.tar.gz: ab1d4a6d250e25e803a406bc0477972a8c371bc47cba56bc3743bf8a6061a5172fab53517408a9cf019800ea79962b1b0550eb18188d535194a8383baa05570d
@@ -0,0 +1,13 @@
1
+ module Pageflow
2
+ module Dom
3
+ module Editor
4
+ class EntryOutline < Domino
5
+ selector 'sidebar .chapters.outline'
6
+
7
+ def self.await!
8
+ find!
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ module Pageflow
2
+ module Dom
3
+ module Editor
4
+ class FileImportChooser < Domino
5
+ selector '.dialog_container > .choose_importer'
6
+
7
+ def cancel_button
8
+ node.find('button.close')
9
+ end
10
+
11
+ def importers_list
12
+ node.find('ul.importers_panel')
13
+ end
14
+
15
+ def select_importer(importer_key)
16
+ importers_list.find("li > .importer[data-key='#{importer_key}']").click
17
+ end
18
+
19
+ def has_importer?(importer_key)
20
+ importers_list.has_selector?("li > .importer[data-key='#{importer_key}']")
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module Pageflow
2
+ module Dom
3
+ module Editor
4
+ class FileImportDialog < Domino
5
+ selector '.dialog_container > .files_importer'
6
+
7
+ def cancel_button
8
+ node.find('button.close')
9
+ end
10
+
11
+ def import_button
12
+ node.find('button.import')
13
+ end
14
+
15
+ def file_section
16
+ node.find('.filesection')
17
+ end
18
+
19
+ def status
20
+ node.find('.status')
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ require 'pageflow/dom'
2
+
3
+ module Dom
4
+ module Editor
5
+ include Dom::Editor
6
+ end
7
+ end
@@ -0,0 +1,29 @@
1
+ module Pageflow
2
+ module Dom
3
+ module Editor
4
+ class Sidebar < Domino
5
+ selector 'sidebar.editor'
6
+
7
+ def has_chapter_item?
8
+ node.has_selector?('ul.chapters > li:not(.creating)')
9
+ end
10
+
11
+ def has_no_chapter_item?
12
+ node.has_no_selector?('ul.chapters > li')
13
+ end
14
+
15
+ def add_chapter_button
16
+ node.find('.add_chapter')
17
+ end
18
+
19
+ def publish_button
20
+ node.find('.publish')
21
+ end
22
+
23
+ def manage_files_menu_item
24
+ node.find('.menu .manage_files')
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,12 @@
1
+ require 'pageflow/dom/editor/entry_outline'
2
+ require 'pageflow/dom/editor/sidebar'
3
+ require 'pageflow/dom/editor/file_import_chooser'
4
+ require 'pageflow/dom/editor/file_import_dialog'
5
+
6
+ module Pageflow
7
+ module Dom
8
+ # Dominos for editor ui elements and helper methods.
9
+ module Editor
10
+ end
11
+ end
12
+ end
data/pageflow/dom.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'domino'
2
2
 
3
3
  require 'pageflow/dom/admin'
4
+ require 'pageflow/dom/editor'
4
5
 
5
6
  # Dominos to be used by plugin tests.
6
7
  module Pageflow
@@ -0,0 +1,74 @@
1
+ require 'pageflow/global_config_api_test_helper'
2
+ require 'pageflow/test_page_type'
3
+ require 'pageflow/entry_export_import'
4
+
5
+ module Pageflow
6
+ module Lint
7
+ # @api private
8
+ module FileImport
9
+ def self.lint(file_importer)
10
+ GlobalConfigApiTestHelper.setup
11
+ RSpec.describe "file importer #{file_importer.name}" do
12
+ before do
13
+ pageflow_configure do |config|
14
+ config.file_importers.register(file_importer.name, file_importer)
15
+ end
16
+ end
17
+
18
+ def file_importer_credentials(authentication_provider)
19
+ token = AuthenticationToken.where(provider: authentication_provider) if
20
+ authentication_provider.present?
21
+ unless token.nil?
22
+ token = nil if token.empty?
23
+ end
24
+ token
25
+ end
26
+
27
+ it 'extends Pageflow::FileImporter class' do
28
+ expect(file_importer).to be_kind_of(Pageflow::FileImporter)
29
+ end
30
+
31
+ it 'has a name method which returns string name' do
32
+ expect(file_importer.class.method_defined?(:name)).to be(true)
33
+ expect {
34
+ importer_name = file_importer.name
35
+ expect(importer_name).to be_instance_of(String)
36
+ }.not_to raise_error
37
+ end
38
+
39
+ it 'has a authentication_provider method' do
40
+ expect(file_importer.class.method_defined?(:authentication_provider)).to be(true)
41
+ provider = file_importer.authentication_provider
42
+ expect(provider).to be_nil.or be_a(Symbol)
43
+ end
44
+
45
+ it 'has a search method' do
46
+ expect(file_importer.class.method_defined?(:search)).to be(true)
47
+ expect {
48
+ provider = file_importer.authentication_provider
49
+ search_result = file_importer.search(file_importer_credentials(provider),
50
+ 'test*$*page=1&per_page=15*$*')
51
+ expect(search_result).not_to be_nil
52
+ }.not_to raise_error
53
+ end
54
+
55
+ it 'has a files_meta_data method' do
56
+ expect(file_importer.class.method_defined?(:files_meta_data)).to be(true)
57
+ expect {
58
+ provider = file_importer.authentication_provider
59
+ meta_data = file_importer.files_meta_data(file_importer_credentials(provider), {})
60
+ expect(meta_data).not_to be_nil
61
+ expect(meta_data).to include(:collection)
62
+ expect(meta_data).to include(:files)
63
+ expect(meta_data[:files]).to be_kind_of(Array)
64
+ }.not_to raise_error
65
+ end
66
+
67
+ it 'has a download_file method' do
68
+ expect(file_importer.class.method_defined?(:download_file)).to be(true)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
data/pageflow/lint.rb CHANGED
@@ -3,6 +3,7 @@ require 'pageflow/test_page_type'
3
3
 
4
4
  require 'pageflow/lint/file_type'
5
5
  require 'pageflow/lint/page_type'
6
+ require 'pageflow/lint/file_import'
6
7
 
7
8
  module Pageflow
8
9
  # Shared examples providing integration level specs for Pageflow
@@ -54,5 +55,18 @@ module Pageflow
54
55
  def self.page_type(*args)
55
56
  Lint::PageType.lint(*args)
56
57
  end
58
+
59
+ # Contracts specs for file import plugin
60
+ # @example
61
+ #
62
+ # require 'spec_helper'
63
+ # require 'pageflow/lint'
64
+ #
65
+ # module SomePlugin
66
+ # Pageflow::Lint.file_import(SomePLugin.file_import)
67
+ # end
68
+ def self.file_import(*args)
69
+ Lint::FileImport.lint(*args)
70
+ end
57
71
  end
58
72
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageflow-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.0.2
4
+ version: 15.1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Codevise Solutions Ltd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-28 00:00:00.000000000 Z
11
+ date: 2019-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pageflow
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 15.0.2
19
+ version: 15.1.0.beta1
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
- version: 15.0.2
26
+ version: 15.1.0.beta1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mysql2
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -191,6 +191,12 @@ files:
191
191
  - pageflow/dom/admin/edit_forms.rb
192
192
  - pageflow/dom/admin/page.rb
193
193
  - pageflow/dom/admin/sign_in_form.rb
194
+ - pageflow/dom/editor.rb
195
+ - pageflow/dom/editor/entry_outline.rb
196
+ - pageflow/dom/editor/file_import_chooser.rb
197
+ - pageflow/dom/editor/file_import_dialog.rb
198
+ - pageflow/dom/editor/public_dominos.rb
199
+ - pageflow/dom/editor/sidebar.rb
194
200
  - pageflow/dummy.rb
195
201
  - pageflow/dummy/app.rb
196
202
  - pageflow/dummy/config/pageflow.rb
@@ -204,6 +210,7 @@ files:
204
210
  - pageflow/dummy/templates/test_theme_preview.png
205
211
  - pageflow/global_config_api_test_helper.rb
206
212
  - pageflow/lint.rb
213
+ - pageflow/lint/file_import.rb
207
214
  - pageflow/lint/file_type.rb
208
215
  - pageflow/lint/page_type.rb
209
216
  - pageflow/rails_version.rb
@@ -225,12 +232,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
225
232
  version: '0'
226
233
  required_rubygems_version: !ruby/object:Gem::Requirement
227
234
  requirements:
228
- - - ">="
235
+ - - ">"
229
236
  - !ruby/object:Gem::Version
230
- version: '0'
237
+ version: 1.3.1
231
238
  requirements: []
232
239
  rubyforge_project:
233
- rubygems_version: 2.7.10
240
+ rubygems_version: 2.7.5
234
241
  signing_key:
235
242
  specification_version: 4
236
243
  summary: Spec support for Pageflow extensions.