pageflow-support 15.0.2 → 15.1.0.beta1

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