decidim-dev 0.23.1 → 0.24.0.rc2
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 +4 -4
- data/app/forms/decidim/dummy_resources/dummy_resource_form.rb +5 -3
- data/app/mailers/decidim/dummy_resources/dummy_resource_mailer.rb +17 -0
- data/config/locales/de.yml +1 -1
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/tr-TR.yml +25 -9
- data/lib/decidim/dev/assets/5000x5000.png +0 -0
- data/lib/decidim/dev/assets/assemblies.json +2 -1
- data/lib/decidim/dev/assets/import_proposals.csv +6 -0
- data/lib/decidim/dev/assets/import_proposals.json +14 -0
- data/lib/decidim/dev/assets/import_proposals.xls +0 -0
- data/lib/decidim/dev/assets/import_proposals_broken.csv +6 -0
- data/lib/decidim/dev/assets/invalid.jpeg +0 -0
- data/lib/decidim/dev/assets/participatory_processes.json +1 -1
- data/lib/decidim/dev/assets/participatory_processes_with_null.json +1 -1
- data/lib/decidim/dev/assets/private_key.jwk +1 -0
- data/lib/decidim/dev/assets/private_key2.jwk +1 -0
- data/lib/decidim/dev/assets/public_key.jwk +1 -0
- data/lib/decidim/dev/assets/public_key2.jwk +1 -0
- data/lib/decidim/dev/test/base_spec_helper.rb +4 -4
- data/lib/decidim/dev/test/promoted_participatory_processes_shared_examples.rb +38 -4
- data/lib/decidim/dev/test/rspec_support/action_mailer.rb +1 -1
- data/lib/decidim/dev/test/rspec_support/capybara.rb +9 -1
- data/lib/decidim/dev/test/rspec_support/component.rb +25 -4
- data/lib/decidim/dev/test/rspec_support/component_context.rb +17 -5
- data/lib/decidim/dev/test/rspec_support/puffing_billy.rb +55 -0
- data/lib/decidim/dev/test/rspec_support/translation_helpers.rb +41 -1
- data/lib/decidim/dev/test/rspec_support/vcr.rb +27 -0
- data/lib/decidim/dev/test/rspec_support/{download_helper.rb → z_download_helper.rb} +13 -15
- data/lib/decidim/dev/test/spec_helper.rb +1 -1
- data/lib/decidim/dev/version.rb +1 -1
- metadata +78 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 16d6011724d3a0b8d30cd7dd3642d385dd4c4052d4ceb5142bd5bcf14b81accb
|
|
4
|
+
data.tar.gz: 87ce3f85f4dcce0d470518d449da6880e8330b1249a17ce92c606409d22c65a3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 370f83e65fca6696710d56a0a48d0edead7f2a8dcc1f8348b231e09342a78ba5bb57d1cfae08541a765ee9e1a53144b0fb8d1140d933cc56c99be681b0f46037
|
|
7
|
+
data.tar.gz: 3eb6cc452af6906afb128170c10465a9571b37ae5bfc409abeb7bd906d5c7bc77af8ff9a4239ab7e5f8ae6cff6bdc8e3a812f38d36871a7915fc576584d49f19
|
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
module Decidim
|
|
4
4
|
module DummyResources
|
|
5
5
|
class DummyResourceForm < Decidim::Form
|
|
6
|
+
include Decidim::AttachmentAttributes
|
|
7
|
+
|
|
6
8
|
mimic :dummy_resource
|
|
7
9
|
|
|
8
10
|
attribute :title, String
|
|
9
11
|
attribute :body, String
|
|
10
12
|
attribute :attachment, AttachmentForm
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
|
|
14
|
+
attachments_attribute :photos
|
|
13
15
|
|
|
14
16
|
validates :title, :body, presence: true, etiquette: true
|
|
15
|
-
validates :title, length: {
|
|
17
|
+
validates :title, length: { in: 15..150 }
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module DummyResources
|
|
5
|
+
class DummyResourceMailer < ApplicationMailer
|
|
6
|
+
def send_email(user, organization)
|
|
7
|
+
@user = user
|
|
8
|
+
@organization = organization
|
|
9
|
+
|
|
10
|
+
mail(to: "#{user.name} <#{user.email}>") do |format|
|
|
11
|
+
format.text { "This is the test" }
|
|
12
|
+
format.html { "<p>This is a mail </p>" }
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
data/config/locales/de.yml
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
si:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sw:
|
data/config/locales/tr-TR.yml
CHANGED
|
@@ -2,12 +2,28 @@ tr:
|
|
|
2
2
|
activemodel:
|
|
3
3
|
attributes:
|
|
4
4
|
dummy_resource:
|
|
5
|
-
created_at:
|
|
5
|
+
created_at: Oluşturuldu
|
|
6
|
+
decidim_scope_id: Kapsam
|
|
6
7
|
field: Benim alanım
|
|
7
8
|
start_date: Başlangıç tarihi
|
|
8
9
|
title: Başlık
|
|
9
|
-
|
|
10
|
+
translatable_text: Çeviri metni
|
|
11
|
+
updated_at: Güncellendi
|
|
10
12
|
decidim:
|
|
13
|
+
components:
|
|
14
|
+
dummy:
|
|
15
|
+
settings:
|
|
16
|
+
global:
|
|
17
|
+
readonly_attribute: Salt okunur özniteliği
|
|
18
|
+
test: Test
|
|
19
|
+
test_choices:
|
|
20
|
+
a: Seçenek
|
|
21
|
+
b: Seçim
|
|
22
|
+
c: Seçenek
|
|
23
|
+
step:
|
|
24
|
+
endorsements_blocked: Onaylar engellendi
|
|
25
|
+
endorsements_enabled: Onaylar etkinleştirildi
|
|
26
|
+
readonly_step_attribute: Salt okunur özniteliği
|
|
11
27
|
dummy:
|
|
12
28
|
admin:
|
|
13
29
|
exports:
|
|
@@ -27,14 +43,14 @@ tr:
|
|
|
27
43
|
pages:
|
|
28
44
|
home:
|
|
29
45
|
statistics:
|
|
30
|
-
bar:
|
|
31
|
-
dummies_count_high:
|
|
32
|
-
dummies_count_medium:
|
|
33
|
-
foo:
|
|
46
|
+
bar: Çubuk
|
|
47
|
+
dummies_count_high: Çok sahte
|
|
48
|
+
dummies_count_medium: Orta sahte
|
|
49
|
+
foo: Sahte değişken
|
|
34
50
|
participatory_processes:
|
|
35
51
|
statistics:
|
|
36
|
-
dummies_count_high:
|
|
37
|
-
dummies_count_medium:
|
|
52
|
+
dummies_count_high: Çok sahte
|
|
53
|
+
dummies_count_medium: Orta sahte
|
|
38
54
|
resource_links:
|
|
39
55
|
test_link:
|
|
40
|
-
dummy_resource_dummy: İlgili
|
|
56
|
+
dummy_resource_dummy: İlgili sahte konu
|
|
Binary file
|
|
@@ -486,6 +486,7 @@
|
|
|
486
486
|
"default_registration_terms_es": null,
|
|
487
487
|
"comments_enabled": true,
|
|
488
488
|
"resources_permissions_enabled": true,
|
|
489
|
+
"registration_code_enabled": true,
|
|
489
490
|
"enable_pads_creation": false
|
|
490
491
|
},
|
|
491
492
|
"weight": 0,
|
|
@@ -813,4 +814,4 @@
|
|
|
813
814
|
}
|
|
814
815
|
]
|
|
815
816
|
}
|
|
816
|
-
]
|
|
817
|
+
]
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
title/en;body/en
|
|
2
|
+
Esse qui. Ut.;"Aliquid in ut. Laboriosam consequatur consequatur. Unde dolorem omnis.
|
|
3
|
+
Et earum aut. Quis enim quis. Dolore corporis et. Quia vel ex."
|
|
4
|
+
Nihil id.;"Atque qui aut. Quia et incidunt. Qui nihil dolore.
|
|
5
|
+
Delectus asperiores nihil. Sapiente omnis culpa. Eos at voluptatem."
|
|
6
|
+
Suspendisse lobortis;Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"title/en": "Esse qui. Ut.",
|
|
4
|
+
"body/en": "Aliquid in ut. Laboriosam consequatur consequatur. Unde dolorem omnis.\nEt earum aut. Quis enim quis. Dolore corporis et. Quia vel ex."
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"title/en": "Nihil id.",
|
|
8
|
+
"body/en": "Atque qui aut. Quia et incidunt. Qui nihil dolore.\nDelectus asperiores nihil. Sapiente omnis culpa. Eos at voluptatem."
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"title/en": "Suspendisse lobortis",
|
|
12
|
+
"body/en": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
13
|
+
}
|
|
14
|
+
]
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
title/en;body/en
|
|
2
|
+
Esse qui. Ut.;"Aliquid in ut. Laboriosam consequatur consequatur. Unde dolorem omnis.
|
|
3
|
+
Et earum aut. Quis enim quis. Dolore corporis et. Quia vel ex."
|
|
4
|
+
Nihil id.;"Atque qui aut. Quia et incidunt. Qui nihil dolore.
|
|
5
|
+
Delectus asperiores nihil. Sapiente omnis culpa. Eos at voluptatem."
|
|
6
|
+
;Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"alg":"RS256","d":"QYEpgYkfRGjE_LAK02dCBZyhwFdO29VCgxhsw4UFzzJiIQbi7tCbec3cQghf1AHpfL8IRrXVBREKGNEY81Ihazz288d_dF8sICtZC6srtxMqD1iuvak_oVIhw5LUEVUehHujL3j95NBfaipJId_lW0hEOq8w5k6ObaL-_kHnQybYUdq8i-PVeLrVwGMKNSl_kU0hERgs6wf38WJwGWNTO3FOdvVOlMRKqjvUXschoVlJlqA39oX6Fa8ksVogP5Gqv_V1UbZnvaky0Amnuic4l0RRBz_l2bSHs2Xf6HqSY8ccxEtfkJQyq9fmP-WToheJOirumge6R2JyLL4H9Z8AuTSRBDSr6-ltEh6NBbTP1y5w8b3HgXrVHH21XbuFv2FzVu9s9KvkR4GEAKTYMt9CxCVIuoBUu_tZKmZw2gocgsRm9lG0-8Qf_FZR4QLrPN3-tHpJuDQk4CI29Luu-te2EY3494dj0LfK8GB2_o1bTZcsTKGiKAe6sXQ8E3WRYxVFhAgIarclJ3AKWbDUgxQOEx5awgoggMhkggNq0FlBqVC293LHMLdOnYLSmrWXdl5FjBVkCF9njv5U_N2EHwmyv14XRFidBIK_N5FridGXukrgnUlzm_uD5OTKQFVqHFjw4tluOQF0SbJw0JAeiFGkjkMtGBTOnVNsCCn6TUDtlhE","dp":"qP4EmXYhpsPh1-OJiQ9gg_CjJ5TE05hbbIuI9qnjn4s0sYoo6jFq34joU6JmCOvu3Wdik7qT3r67K2dNLLj5WpMumzOyfXNynTzAjnC51DzM7H8DtL397pnJJBMyv00wM02rzbjsGAx10mySSU4DIl6gR2lbigUflxYvfJRvTXmcDOejMMm1yAlWBI0M7z82LPY_bcPfs4awGDKNQhCNbABwmGJGJOHuFBKn_VvItfJpmoR8u89X2yxa3-DIBM2w1blKpwkg5Lu0vv7Md6z8lFlBq9kNf6B2E8YsRD4_qXwFtFnc0bq4LW5buGasY1fpAsodwKjtPS_YwMxCrrUYzQ","dq":"baJf8oZGb9SuEN9v4XrLgLHZA69J8gj9Tzh4K24AWD7mF9zvmRj-if7DGUbwfR55ioUarrkB51EUMQisMY4QJcG-_4Afp5KXMpO6R9ckMUc99fNtMURIwVwpXBwD4Qb6hFE4QYHHxH47mUq69FAFSzNL9lfgAtV4YCgK3rIK1OB7kqTSs2AW-7E-eQLACYmmb3fAq5-1DGxABVTm7aNa1uwgt1kuDfF-PaZB5WlXPCVZxpCHQ3TGacvx5hDda_9C0vxjimbRLOh_CtAmmm_P4TpLf4baYWl3AeEYNEPCGutwPDyrv-OA3cBWJn_rAOYMMeDenUDcaq8x-VUUOoS0_Q","e":"AQAB","ext":true,"key_ops":["sign"],"kty":"RSA","n":"rHpNVOvpLrdMMAWsJh42UKnn5sAURhB7A-sEQe0hQ8gk5b3tVufabAJIsfEArsjyt91UIXgmSnyGd8tbkErs53FYcLXgZwDEJ1NNcBdHi_iGJULF1IOKhxWHJS1QKjkPoSamCTeoQ8hWq0mdWHF1gsiOtRjIft-RX7Am2Zqk53CePE2TVRqnHuEmMQHQ-lcP2Pbe17cT4i6PoyDIuanbabenDktNzGXG7BfD4O7zhMWB0dE1SQZSR09danCzo53xk4NloV9xCR9VcSnGus-AnKIZQZFXi0QqIK6i8VFNuA9PYCCfleUWCAyHRQMkd9XSzbTs8OeWAvg4Rcb8Wv5GkL8acazy7G0diiAvotIr058CNoFGqvtuKnxilP2apaYwCBTa-SQp4DqCiYcAtPj_WeRTbap6WyDcfyxL5LyUQysVmGn4fB4nLVoDWx4zVmVw0SbGQT8K4FmkIhjtdDmELPaientG8Tep4IBjPtFSa-RMLAu45jHdlsXBZjmrbeTbwTBWV4aSKp6T2lcEOc-mxrorrWgTGYy2MvpJHLaneexefEMVB8iXJJX2L4JAqKCwq7V8Cwum0ZsTWaKLsGRNqPeAwayAJeXuiT5hDs3i-cuyuqrc2gmWxu5FEGZHJQWG_MLnYATY_nlIDq-ovuGGJa-lszu6pyVvCKryC70mksM","p":"34DGgLl2I8n2_9OJbcVKDcIiqo5Z52JSrIjusGtYMGQKDAK4Qk32l5XIUleoezae-G7N43pxEu_qzxq_kpdeoG75zCIQcdoh15Dvr6l_r_ANhX0e8wlWulJ7Y3IW0QNhm3ch_tta9Km_9ut9HoSo2oShMg2kxbP47wnK-mzfIIlDWq4xpjS9RwPWuLpHmDOmBs-sHzM9monCcb35LGmn-zxulM-xl_a3Vm3NbFF4mmxP2naEzbJ-wpx-jVWw5KoJuECuviU_cfltCTV-OlVwkAWm45WlQRlRZPwW42sMTJ-MXK3byG4ckd1nIEu9iC1R0gwksbsKjhtRh-l-UCWmDQ","q":"xY5Dv1frxXWaXwF7wxdcjmPD9L13iquZvgRcGDNTOmcB-eljPzK_ON5KwIK1Ua9FHRa3LPm9amB0sIKeuc-rcvTXgfjCGVPESpNBzzee3jIjikPnbO2knsXdZjoHC82SMLTYFMrzY3GXoDRl-I9SFKROntmK7BADwY4T5ZGdXXvtfvfUlhYP4L_dKO6X7UK2l_CvQszyDNHXxwx9FSyzFREaBpLPd_OVvJmqzOhBeJQGVZRZDexGxZSrtCtwjlQlr_MYOAuRmh5Zz1BvV-cu--sy0ZMjRB6_j__1Vrs_d1_R4TRpG1ju4GBRXCbrv4hDoMJGAioMGn2-xLZ76Fs4Dw","qi":"U2tMM1A8RFqBlbO1KP3B4ulb7Hf4Lr0L_l0XPOHXQdS_LqCHNUoZ9ss15paEWa_zy9k_1nop8SOPV1ZXtGSv0ZkK27q4Br_3VblG-rAaDWPP8ns4Flh-o6XeR0s2mr96427jpATDO3wzkk7tMqlRGPEL7INYRASLJ1gKTkjgb8oeJsavw3CM5v4e3000Te-Tb0nstwT4CXWEbgq5d54d1tgCcY2Ew6H3n0yfGnrSDvlQO3Kb2bWDb5k0pgO7vybAo0mI0lUK36nZqdd4J60iGijaonaE903OErGzSpQPQ5WOqQi95IDe2NGi_RbpcMMfe4zDd4NJvRVQeifboRs8oQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"alg":"RS256","d":"KqRpb0pp5AsfoNfBOGU71eetkXqJJNCZJAX70dDdSzjKDRyfa1GAgYYSJ69J2LCckYEWUeRxlEi81-G5zU8JJbfJkYnIGS2yDxGTx6RuH7ouzZ15sHE6tycjKoyrbxw8FS4Ba7JfX2RiG6UthznqXTaGLddOnHgbUoLCD6deG6oGGsr9UbSQrXksBSzFn00jQ4LgfWDxD0FZKf39HLV_OWdrSEaPw0Gdd6t-a3PbdEBAyYv9ufEaNdg_ckf_o166pgcgi82tyT-jTYnDqvNZIfbWkzQapG7Q6VuAT3l-23E8Dy3r9UdckqO7jPKbuNbggoDr1Qz2NoSacMLmyJBwbdy3SQh3PCTgaa9niUGumnPWuIEX8qckAJ6I5urTTF1AxnUfd83tw-ykgdX7spSnx125flVG5oEptjpj6tZraUyuXJmpCcqHiGeo2iVAC3RXNcIS-Yw0UGXZbaUPVOM7YpcSavBkfcSiohjSRL6VeH5GY6mnD88O_eFmdQB2DZS1EcE62SxMj4pZg5xsUXK3BliCcOCEsjfdJCCf9NluI_E0IBKbQbew-ijGgy2GiYB7Y23sxPMkMFUaLteyrU6hXqEEJNiWjofTWwUS5BEn9sozOBcZ4EgVTxmucHS_dFomsZvC81p9-aIyC1xOHJg4hf3lbSl-EAnoZp3aYM3JcDE","dp":"fCu-Y2pje9uAF_v1q6UgTQWLppQN1TTa9guHQgMQkVTi3bGHCGlejbxIjEM0p34WCnKp629YUQGiR36ytdTxQEaEUsoNOQj0Hyel3GVwvZcGo3KXAB1NxF1YRAd9BbPFHBHrRXRDPpFc7ggVcDsIzQyjTBLvEicpXKZy5fkdu3cTkZAWGH-i0liGhW4Ed0Y57n-VnPfE9zITnZCoIj_fX5xFR_oIIC3vHe1YTMIxeh5tjCl4Ws7j_o2HgOxA2pipgtvjZYTQsR2Wh-taYtYCOYrwG2fTNU9TMgbcJICvCmbuFPDy1H-9a7XBvUICDssPffDU1V0zW2c03IAlfnNCOQ","dq":"Evd2u7OlVQhuAuESlkORxGujK_2cTHZQ6LVVw77pKZFWg3jY_oHbGrgF_gM0adZHqdsw4G8v_dVE0jbg2e0JIdsQ3AvDmhiFg0tFm-anp_6P7yAPhmY4_lYEh_EKSps1G3b7tt_NKMCroBStf0YIzOtiNnUf7IlBXivuzcKT4KRm07sbmZa7W5EUfEhRMExdMTFw-3d-D0ChqD05UvBGkVWyH9CL1txyV4tGuwN42Noc_Gsb0eIQF-PVREOyNXXd_H-Ps3833ALi_dq_V-7PBZzUWm46RElmY2ar9ARMV_andR1yt9cKZHeaTfsOA3IbgcY9wWpFeOPrqsQ-6j_u0Q","e":"AQAB","ext":true,"key_ops":["sign"],"kty":"RSA","n":"mYW4py55eHVzlAOLeWSlkX-UzFcWmPZNgt38YgfDsrWsMiF99NxeS1hHBBBAIMYVj4DdraunxwxibFZJm4B7JfLedO02pGHXWpx-VUSwRU7TKBO8KGcLIuyIsLAn4VZmcUCfOD4z4D3mOPXJFrmy_db4EQJgQnkRQdop9Nb-zExjYdw9IOnSFYdYLJ6k-g4Onu43kUIVDjBBwBlNHIkr-zpApPWhABUpSV_Vy6WAdku3ix4MyFQLQ48ljJp4KVKrw85km3x5k1p7yXpRXaeAUwdl1ucZUHgeb23ED-q2gwASAbrBLOMlrrRrexObRXlHd7gkQS4fwvLtehENY0EepaS6R9ZDGD5l8AJOlS3jGCBfQdpL9aJT05ZqmB8Vi0Fj8PgDkzselqp9eSwUBb82bp8padX9NsZPaokXLtJls8acSOPpBDwmEPAiUML7LWUwiRylimK4CVDNxulNGnBuPlYl5b4vZQHtpjBEFfKUZxI8qY1Y2qpEehaYD0oXa64yr2Hi5IVdlCOS88hqPskPttoe28cm6YVYflJP9bv4slqeu1cafDSCxX7A4PX83wDpW5gyWC3cXAPTXh2Plxlnn3p9KTae6_YPkI8Id26zkm61LpKi-CkQCvo2fHvfZI23JiSj3Y9KYZR25Ym8O9aaNBdhgvNKhB8VFlizKet3VU8","p":"0quw5Amx8fF_xXD-U8muoXrtjOURvjjIscLaDIcbuzfUb5SCfdDOgFLbSczX2zkqBU54SVVAjWnR_MW4gg1axpscFPwM2ddQ4WgimEqGbAzbxzmsg4O15CID_El9m9ptsbz67r1H4qiEHkD4f_1or4cDlV41UT07spd4kSNqGAycrIvp5ShXtK7Oz89J3QaOR7DscJgR6dT3s0HpzfNW3hDW2_gnaE0Vk98rdm70wxuKeZ418r2IiESKQxfliT-fegFCyUJ_-Rif8L4-68aq4DJTVYuCU7uplrgD5IPvAGJaQ2FQYrzPzXD9-pBdbIlOgCXfpZBZBanYvOKdS_Q7_w","q":"uo4lizbd3qQs2W2r_GT40JqXScKdONk1e6_fJy1VWgo5H_ryQkVL-wxv9ecelbciZGOJ9LTnLkTgNLPGZjIkTcWgmsjGemoaqDzkzfKJHI4nytMwAXNHSuvwZkK1Qd98FnEA4NJlOPjUa76XTPCE5ZycD38mck9MKsY2sywhx9bKyrUXbNwc08tJyFH4apAi8jss31JlJy18tcQL1wcWxM2b7rx7FBrw5m9ujHm2eXKaoIbxtP9YjxPU0YJN4rncNJ6cLyO-zuNWg7KWymiKyxag9MPSJRodJ2whc-0cU5DdJKZvFijjln7Rw2x2buNWBTcxb06a9WkuF-UEIU4msQ","qi":"vNoH-M6QspeJDglwZfymEnf9TaBtJVqpfZVVAALXtyEY4g78PoYhsgHonVKO6VVxnl5yT8Vm3O-Ma5I2IKORP2hDZm6CtsvZVQGUmHbnJGuXBT_skex9VOVNHR5DZ9BObkB4Df4BzseTzoesMsdFX9mn-YToIJ3bXOUqlzLV3CKDWUYGtJeztpFeof3r1qv1lk3X-EYWy_qbGpNycoQiwgmiznewCieYLELTdrQViZl0cnhmw5upHAg1zbjvlAn0WiuhYe5Tit8gcm5fY9VA-rONpPkxz75mbuhvK0OMjAlY5mBcvd3uqTze1t3-FPVHcTk40eeHvBsZ4Pn4nDll4Q"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"alg":"RS256","e":"AQAB","kty":"RSA","n":"rHpNVOvpLrdMMAWsJh42UKnn5sAURhB7A-sEQe0hQ8gk5b3tVufabAJIsfEArsjyt91UIXgmSnyGd8tbkErs53FYcLXgZwDEJ1NNcBdHi_iGJULF1IOKhxWHJS1QKjkPoSamCTeoQ8hWq0mdWHF1gsiOtRjIft-RX7Am2Zqk53CePE2TVRqnHuEmMQHQ-lcP2Pbe17cT4i6PoyDIuanbabenDktNzGXG7BfD4O7zhMWB0dE1SQZSR09danCzo53xk4NloV9xCR9VcSnGus-AnKIZQZFXi0QqIK6i8VFNuA9PYCCfleUWCAyHRQMkd9XSzbTs8OeWAvg4Rcb8Wv5GkL8acazy7G0diiAvotIr058CNoFGqvtuKnxilP2apaYwCBTa-SQp4DqCiYcAtPj_WeRTbap6WyDcfyxL5LyUQysVmGn4fB4nLVoDWx4zVmVw0SbGQT8K4FmkIhjtdDmELPaientG8Tep4IBjPtFSa-RMLAu45jHdlsXBZjmrbeTbwTBWV4aSKp6T2lcEOc-mxrorrWgTGYy2MvpJHLaneexefEMVB8iXJJX2L4JAqKCwq7V8Cwum0ZsTWaKLsGRNqPeAwayAJeXuiT5hDs3i-cuyuqrc2gmWxu5FEGZHJQWG_MLnYATY_nlIDq-ovuGGJa-lszu6pyVvCKryC70mksM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"alg":"RS256","e":"AQAB","kty":"RSA","n":"mYW4py55eHVzlAOLeWSlkX-UzFcWmPZNgt38YgfDsrWsMiF99NxeS1hHBBBAIMYVj4DdraunxwxibFZJm4B7JfLedO02pGHXWpx-VUSwRU7TKBO8KGcLIuyIsLAn4VZmcUCfOD4z4D3mOPXJFrmy_db4EQJgQnkRQdop9Nb-zExjYdw9IOnSFYdYLJ6k-g4Onu43kUIVDjBBwBlNHIkr-zpApPWhABUpSV_Vy6WAdku3ix4MyFQLQ48ljJp4KVKrw85km3x5k1p7yXpRXaeAUwdl1ucZUHgeb23ED-q2gwASAbrBLOMlrrRrexObRXlHd7gkQS4fwvLtehENY0EepaS6R9ZDGD5l8AJOlS3jGCBfQdpL9aJT05ZqmB8Vi0Fj8PgDkzselqp9eSwUBb82bp8padX9NsZPaokXLtJls8acSOPpBDwmEPAiUML7LWUwiRylimK4CVDNxulNGnBuPlYl5b4vZQHtpjBEFfKUZxI8qY1Y2qpEehaYD0oXa64yr2Hi5IVdlCOS88hqPskPttoe28cm6YVYflJP9bv4slqeu1cafDSCxX7A4PX83wDpW5gyWC3cXAPTXh2Plxlnn3p9KTae6_YPkI8Id26zkm61LpKi-CkQCvo2fHvfZI23JiSj3Y9KYZR25Ym8O9aaNBdhgvNKhB8VFlizKet3VU8"}
|
|
@@ -12,12 +12,12 @@ require "decidim/core"
|
|
|
12
12
|
require "decidim/core/test"
|
|
13
13
|
require "decidim/admin/test"
|
|
14
14
|
|
|
15
|
-
require_relative "rspec_support/component
|
|
16
|
-
require_relative "rspec_support/authorization
|
|
15
|
+
require_relative "rspec_support/component"
|
|
16
|
+
require_relative "rspec_support/authorization"
|
|
17
17
|
|
|
18
18
|
require "#{Decidim::Dev.dummy_app_path}/config/environment"
|
|
19
19
|
|
|
20
|
-
Dir["#{engine_spec_dir}/shared/**/*.rb"].each { |f| require f }
|
|
20
|
+
Dir["#{engine_spec_dir}/shared/**/*.rb"].sort.each { |f| require f }
|
|
21
21
|
|
|
22
22
|
require "paper_trail/frameworks/rspec"
|
|
23
23
|
|
|
@@ -33,6 +33,6 @@ if ENV["CI"]
|
|
|
33
33
|
config.display_try_failure_messages = true
|
|
34
34
|
|
|
35
35
|
# Retry failed test, set to 1 for normal behavior
|
|
36
|
-
config.default_retry_count = ENV.fetch("FAILED_TEST_RETRY_COUNT"
|
|
36
|
+
config.default_retry_count = ENV.fetch("FAILED_TEST_RETRY_COUNT", 3)
|
|
37
37
|
end
|
|
38
38
|
end
|
|
@@ -1,12 +1,46 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
shared_examples "with promoted participatory processes" do
|
|
3
|
+
shared_examples "with promoted participatory processes and groups" do
|
|
4
4
|
before do
|
|
5
5
|
request.env["decidim.current_organization"] = organization
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
describe "
|
|
9
|
-
it "
|
|
8
|
+
describe "promoted_collection" do
|
|
9
|
+
it "includes promoted participatory processes and groups placing groups in first place" do
|
|
10
|
+
create(
|
|
11
|
+
:participatory_process_group,
|
|
12
|
+
organization: organization
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
unpromoted_process = create(
|
|
16
|
+
:participatory_process,
|
|
17
|
+
:with_steps,
|
|
18
|
+
:published,
|
|
19
|
+
organization: organization
|
|
20
|
+
)
|
|
21
|
+
unpromoted_process.active_step.update!(end_date: Time.current.advance(days: 1))
|
|
22
|
+
|
|
23
|
+
promoted_process = create(
|
|
24
|
+
:participatory_process,
|
|
25
|
+
:with_steps,
|
|
26
|
+
:published,
|
|
27
|
+
:promoted,
|
|
28
|
+
organization: organization
|
|
29
|
+
)
|
|
30
|
+
promoted_process.active_step.update!(end_date: Time.current.advance(days: 2))
|
|
31
|
+
|
|
32
|
+
promoted_group = create(
|
|
33
|
+
:participatory_process_group,
|
|
34
|
+
:promoted,
|
|
35
|
+
organization: organization
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
expect(controller.helpers.promoted_collection).to(
|
|
39
|
+
match_array([promoted_group, promoted_process])
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "orders participatory processes by active_step end_date" do
|
|
10
44
|
create(
|
|
11
45
|
:participatory_process,
|
|
12
46
|
:with_steps,
|
|
@@ -57,7 +91,7 @@ shared_examples "with promoted participatory processes" do
|
|
|
57
91
|
|
|
58
92
|
second.active_step.update!(end_date: Time.current.advance(days: 4))
|
|
59
93
|
|
|
60
|
-
expect(controller.helpers.
|
|
94
|
+
expect(controller.helpers.promoted_collection).to(
|
|
61
95
|
match_array([first, second, last])
|
|
62
96
|
)
|
|
63
97
|
end
|
|
@@ -16,6 +16,10 @@ module Decidim
|
|
|
16
16
|
def switch_to_default_host
|
|
17
17
|
Capybara.app_host = nil
|
|
18
18
|
end
|
|
19
|
+
|
|
20
|
+
def switch_to_secure_context_host
|
|
21
|
+
Capybara.app_host = "http://localhost"
|
|
22
|
+
end
|
|
19
23
|
end
|
|
20
24
|
end
|
|
21
25
|
|
|
@@ -49,7 +53,7 @@ Capybara.register_driver :iphone do |app|
|
|
|
49
53
|
)
|
|
50
54
|
end
|
|
51
55
|
|
|
52
|
-
Capybara.server = :puma, { Silent: true }
|
|
56
|
+
Capybara.server = :puma, { Silent: true, Threads: "1:1" }
|
|
53
57
|
|
|
54
58
|
Capybara.asset_host = "http://localhost:3000"
|
|
55
59
|
|
|
@@ -73,6 +77,10 @@ RSpec.configure do |config|
|
|
|
73
77
|
end
|
|
74
78
|
end
|
|
75
79
|
|
|
80
|
+
config.after(type: :system) do |example|
|
|
81
|
+
warn page.driver.browser.manage.logs.get(:browser) unless example.metadata[:driver].eql?(:rack_test)
|
|
82
|
+
end
|
|
83
|
+
|
|
76
84
|
config.include Decidim::CapybaraTestHelpers, type: :system
|
|
77
85
|
config.include Devise::Test::IntegrationHelpers, type: :system
|
|
78
86
|
end
|
|
@@ -93,10 +93,28 @@ module Decidim
|
|
|
93
93
|
ResourceLocatorPresenter.new(self).url
|
|
94
94
|
end
|
|
95
95
|
|
|
96
|
+
def reported_attributes
|
|
97
|
+
[:title]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def reported_searchable_content_extras
|
|
101
|
+
[normalized_author.name]
|
|
102
|
+
end
|
|
103
|
+
|
|
96
104
|
def allow_resource_permissions?
|
|
97
105
|
component.settings.resources_permissions_enabled
|
|
98
106
|
end
|
|
99
107
|
|
|
108
|
+
# Public: Overrides the `commentable?` Commentable concern method.
|
|
109
|
+
def commentable?
|
|
110
|
+
component.settings.comments_enabled?
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Public: Whether the object can have new comments or not.
|
|
114
|
+
def user_allowed_to_comment?(user)
|
|
115
|
+
component.can_participate_in_space?(user)
|
|
116
|
+
end
|
|
117
|
+
|
|
100
118
|
def self.user_collection(user)
|
|
101
119
|
where(decidim_author_id: user.id, decidim_author_type: "Decidim::User")
|
|
102
120
|
end
|
|
@@ -106,10 +124,13 @@ module Decidim
|
|
|
106
124
|
end
|
|
107
125
|
|
|
108
126
|
def self.newsletter_participant_ids(component)
|
|
109
|
-
Decidim::DummyResources::DummyResource.where(component: component)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
127
|
+
authors_ids = Decidim::DummyResources::DummyResource.where(component: component)
|
|
128
|
+
.where(decidim_author_type: Decidim::UserBaseEntity.name)
|
|
129
|
+
.where.not(author: nil)
|
|
130
|
+
.group(:decidim_author_id)
|
|
131
|
+
.pluck(:decidim_author_id)
|
|
132
|
+
commentators_ids = Decidim::Comments::Comment.user_commentators_ids_in(Decidim::DummyResources::DummyResource.where(component: component))
|
|
133
|
+
(authors_ids + commentators_ids).flatten.compact.uniq
|
|
113
134
|
end
|
|
114
135
|
end
|
|
115
136
|
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
shared_context "with a component" do
|
|
4
4
|
let(:manifest) { Decidim.find_component_manifest(manifest_name) }
|
|
5
|
-
|
|
6
5
|
let(:user) { create :user, :confirmed, organization: organization }
|
|
7
6
|
|
|
8
|
-
let!(:organization) { create(:organization, available_authorizations: %w(dummy_authorization_handler another_dummy_authorization_handler)) }
|
|
7
|
+
let!(:organization) { create(:organization, *organization_traits, available_authorizations: %w(dummy_authorization_handler another_dummy_authorization_handler)) }
|
|
9
8
|
|
|
10
9
|
let(:participatory_process) do
|
|
11
10
|
create(:participatory_process, :with_steps, organization: organization)
|
|
@@ -22,8 +21,14 @@ shared_context "with a component" do
|
|
|
22
21
|
let!(:category) { create :category, participatory_space: participatory_space }
|
|
23
22
|
let!(:scope) { create :scope, organization: organization }
|
|
24
23
|
|
|
24
|
+
let(:organization_traits) { [] }
|
|
25
|
+
|
|
25
26
|
before do
|
|
26
|
-
|
|
27
|
+
if organization_traits.include?(:secure_context)
|
|
28
|
+
switch_to_secure_context_host
|
|
29
|
+
else
|
|
30
|
+
switch_to_host(organization.host)
|
|
31
|
+
end
|
|
27
32
|
end
|
|
28
33
|
|
|
29
34
|
def visit_component
|
|
@@ -32,9 +37,12 @@ shared_context "with a component" do
|
|
|
32
37
|
end
|
|
33
38
|
|
|
34
39
|
shared_context "when managing a component" do
|
|
35
|
-
include_context "with a component"
|
|
40
|
+
include_context "with a component" do
|
|
41
|
+
let(:organization_traits) { component_organization_traits }
|
|
42
|
+
end
|
|
36
43
|
|
|
37
44
|
let(:current_component) { component }
|
|
45
|
+
let(:component_organization_traits) { [] }
|
|
38
46
|
|
|
39
47
|
before do
|
|
40
48
|
login_as user, scope: :user
|
|
@@ -56,7 +64,11 @@ shared_context "when managing a component" do
|
|
|
56
64
|
end
|
|
57
65
|
|
|
58
66
|
shared_context "when managing a component as an admin" do
|
|
59
|
-
include_context "when managing a component"
|
|
67
|
+
include_context "when managing a component" do
|
|
68
|
+
let(:component_organization_traits) { admin_component_organization_traits }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
let(:admin_component_organization_traits) { [] }
|
|
60
72
|
|
|
61
73
|
let(:user) do
|
|
62
74
|
create :user,
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "billy/capybara/rspec"
|
|
4
|
+
|
|
5
|
+
Billy.configure do |config|
|
|
6
|
+
config.cache = true
|
|
7
|
+
config.persist_cache = true
|
|
8
|
+
config.cache_path = "spec/billy"
|
|
9
|
+
config.record_requests = true
|
|
10
|
+
config.proxied_request_connect_timeout = 20
|
|
11
|
+
config.proxied_request_inactivity_timeout = 20
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
RSpec.configure do |config|
|
|
15
|
+
base_cache_path = Billy.config.cache_path
|
|
16
|
+
|
|
17
|
+
config.before :each, :billy do |example|
|
|
18
|
+
driven_by :selenium_chrome_headless_billy
|
|
19
|
+
switch_to_secure_context_host
|
|
20
|
+
WebMock::HttpLibAdapters::EmHttpRequestAdapter.disable!
|
|
21
|
+
|
|
22
|
+
feature_name = example.metadata[:example_group][:description].underscore.gsub(" ", "_")
|
|
23
|
+
scenario_name = example.metadata[:description].underscore.gsub(" ", "_")
|
|
24
|
+
cache_scenario_folder_path = File.join(base_cache_path, feature_name, scenario_name)
|
|
25
|
+
FileUtils.mkdir_p(cache_scenario_folder_path)
|
|
26
|
+
Billy.config.cache_path = cache_scenario_folder_path
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# A patch to `puffing-billy`'s proxy so that it doesn't try to stop
|
|
31
|
+
# eventmachine's reactor if it's not running.
|
|
32
|
+
#
|
|
33
|
+
# See:
|
|
34
|
+
# https://github.com/oesmith/puffing-billy/issues/253#issuecomment-539710620
|
|
35
|
+
module BillyProxyPatch
|
|
36
|
+
def stop
|
|
37
|
+
return unless EM.reactor_running?
|
|
38
|
+
|
|
39
|
+
super
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
Billy::Proxy.prepend(BillyProxyPatch)
|
|
43
|
+
|
|
44
|
+
# A patch to `puffing-billy` to start EM if it has been stopped
|
|
45
|
+
Billy.module_eval do
|
|
46
|
+
def self.proxy
|
|
47
|
+
if @billy_proxy.nil? || !(EventMachine.reactor_running? && EventMachine.reactor_thread.alive?)
|
|
48
|
+
proxy = Billy::Proxy.new
|
|
49
|
+
proxy.start
|
|
50
|
+
@billy_proxy = proxy
|
|
51
|
+
else
|
|
52
|
+
@billy_proxy
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -14,8 +14,9 @@ module TranslationHelpers
|
|
|
14
14
|
# translated attributes implementation can change more easily.
|
|
15
15
|
def translated(field, locale: I18n.locale)
|
|
16
16
|
return field if field.is_a?(String)
|
|
17
|
+
return if field.nil?
|
|
17
18
|
|
|
18
|
-
field.
|
|
19
|
+
field[locale.to_s] || field.dig("machine_translations", locale.to_s)
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
# Checks that the current page has some translated content. It strips the
|
|
@@ -66,6 +67,20 @@ module TranslationHelpers
|
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
|
|
70
|
+
# Handles how to clear i18n form fields which uses a WYSIWYG editor.
|
|
71
|
+
#
|
|
72
|
+
# field - the name of the field that should be cleared, without the
|
|
73
|
+
# locale-related part (e.g. `:participatory_process_title`)
|
|
74
|
+
# tab_selector - a String representing the ID of the HTML element that holds
|
|
75
|
+
# the tabs for this input. It ususally is `"#<attribute_name>-tabs" (e.g.
|
|
76
|
+
# "#title-tabs")
|
|
77
|
+
# locales - an Array with the locales IDs.
|
|
78
|
+
def clear_i18n_editor(field, tab_selector, locales)
|
|
79
|
+
clear_i18n_fields(field, tab_selector, locales) do |locator|
|
|
80
|
+
clear_editor locator
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
69
84
|
# Handles how to fill a WYSIWYG editor.
|
|
70
85
|
#
|
|
71
86
|
# locator - The input field ID. The DOM element is selected using jQuery.
|
|
@@ -80,9 +95,22 @@ module TranslationHelpers
|
|
|
80
95
|
SCRIPT
|
|
81
96
|
end
|
|
82
97
|
|
|
98
|
+
# Handles how to clear a WYSIWYG editor.
|
|
99
|
+
#
|
|
100
|
+
# locator - The input field ID. The DOM element is selected using jQuery.
|
|
101
|
+
def clear_editor(locator)
|
|
102
|
+
page.execute_script <<-SCRIPT
|
|
103
|
+
$('##{locator}').siblings('.editor-container').find('.ql-editor')[0].innerHTML = "<p><br></p>";
|
|
104
|
+
$('##{locator}').val("")
|
|
105
|
+
SCRIPT
|
|
106
|
+
end
|
|
107
|
+
|
|
83
108
|
private
|
|
84
109
|
|
|
85
110
|
def fill_in_i18n_fields(field, tab_selector, localized_values)
|
|
111
|
+
# Ensure the field is visible in the view to avoid "element has zero size"
|
|
112
|
+
# errors
|
|
113
|
+
scroll_to(find(tab_selector))
|
|
86
114
|
localized_values.each do |locale, value|
|
|
87
115
|
within tab_selector do
|
|
88
116
|
click_link I18n.with_locale(locale) { t("name", scope: "locale") }
|
|
@@ -91,6 +119,18 @@ module TranslationHelpers
|
|
|
91
119
|
end
|
|
92
120
|
end
|
|
93
121
|
|
|
122
|
+
def clear_i18n_fields(field, tab_selector, locales)
|
|
123
|
+
# Ensure the field is visible in the view to avoid "element has zero size"
|
|
124
|
+
# errors
|
|
125
|
+
scroll_to(find(tab_selector))
|
|
126
|
+
locales.each do |locale|
|
|
127
|
+
within tab_selector do
|
|
128
|
+
click_link I18n.with_locale(locale) { t("name", scope: "locale") }
|
|
129
|
+
end
|
|
130
|
+
yield "#{field}_#{locale}"
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
94
134
|
# Gives a specific language version of a field and (optionally) upcases it
|
|
95
135
|
#
|
|
96
136
|
# field - the field that holds the translations
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "vcr"
|
|
4
|
+
|
|
5
|
+
module BulletinBoardVcr
|
|
6
|
+
def self.bulletin_board_uri?(uri)
|
|
7
|
+
uri.hostname == bulletin_board_uri.hostname && uri.port == bulletin_board_uri.port
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.bulletin_board_uri
|
|
11
|
+
@bulletin_board_uri ||= URI(bulletin_board_server)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.bulletin_board_server
|
|
15
|
+
return "" unless defined?(Decidim::Elections)
|
|
16
|
+
|
|
17
|
+
Decidim::Elections.bulletin_board.server
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
VCR.configure do |config|
|
|
22
|
+
config.default_cassette_options = { serialize_with: :json }
|
|
23
|
+
config.cassette_library_dir = "spec/cassettes"
|
|
24
|
+
config.hook_into :webmock
|
|
25
|
+
config.configure_rspec_metadata!
|
|
26
|
+
config.ignore_request { |request| !BulletinBoardVcr.bulletin_board_uri?(URI(request.uri)) }
|
|
27
|
+
end
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
module DownloadHelper
|
|
4
4
|
TIMEOUT = 10
|
|
5
|
-
PATH = Rails.root.join("tmp
|
|
5
|
+
PATH = Rails.root.join("tmp/downloads").freeze
|
|
6
6
|
|
|
7
|
-
def downloads
|
|
8
|
-
Dir[PATH.join("*")]
|
|
7
|
+
def downloads(name = nil)
|
|
8
|
+
Dir[PATH.join(name || "*")]
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def download_path
|
|
12
|
-
wait_for_download
|
|
13
|
-
downloads.first
|
|
11
|
+
def download_path(name = nil)
|
|
12
|
+
wait_for_download(name)
|
|
13
|
+
downloads(name).first
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def download_content
|
|
17
|
-
wait_for_download
|
|
18
|
-
File.read(download_path)
|
|
16
|
+
def download_content(name = nil)
|
|
17
|
+
wait_for_download(name)
|
|
18
|
+
File.read(download_path(name))
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def wait_for_download
|
|
21
|
+
def wait_for_download(name = nil)
|
|
22
22
|
Timeout.timeout(TIMEOUT) do
|
|
23
|
-
sleep 0.1 until downloaded?
|
|
23
|
+
sleep 0.1 until downloaded?(name)
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
def downloaded?
|
|
28
|
-
downloads.any? && !downloading?
|
|
27
|
+
def downloaded?(name = nil)
|
|
28
|
+
downloads(name).any? && !downloading?
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def downloading?
|
|
@@ -40,8 +40,6 @@ end
|
|
|
40
40
|
RSpec.configure do |config|
|
|
41
41
|
config.include DownloadHelper, download: true
|
|
42
42
|
config.before :each, download: true do
|
|
43
|
-
driven_by(:headless_chrome)
|
|
44
|
-
switch_to_default_host
|
|
45
43
|
FileUtils.mkdir_p DownloadHelper::PATH.to_s
|
|
46
44
|
page.driver.browser.download_path = DownloadHelper::PATH.to_s
|
|
47
45
|
clear_downloads
|
|
@@ -11,7 +11,7 @@ require "action_view/helpers/sanitize_helper"
|
|
|
11
11
|
|
|
12
12
|
# Requires supporting files with custom matchers and macros, etc,
|
|
13
13
|
# in ./rspec_support/ and its subdirectories.
|
|
14
|
-
Dir["#{__dir__}/rspec_support/**/*.rb"].each { |f| require f }
|
|
14
|
+
Dir["#{__dir__}/rspec_support/**/*.rb"].sort.each { |f| require f }
|
|
15
15
|
|
|
16
16
|
require_relative "factories"
|
|
17
17
|
|
data/lib/decidim/dev/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decidim-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.24.0.rc2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josep Jaume Rey Peroy
|
|
8
8
|
- Marc Riera Casals
|
|
9
9
|
- Oriol Gual Oliva
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2021-03-10 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: capybara
|
|
@@ -32,14 +32,14 @@ dependencies:
|
|
|
32
32
|
requirements:
|
|
33
33
|
- - '='
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: 0.
|
|
35
|
+
version: 0.24.0.rc2
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - '='
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: 0.
|
|
42
|
+
version: 0.24.0.rc2
|
|
43
43
|
- !ruby/object:Gem::Dependency
|
|
44
44
|
name: factory_bot_rails
|
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,30 +128,50 @@ dependencies:
|
|
|
128
128
|
name: nokogiri
|
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
|
130
130
|
requirements:
|
|
131
|
+
- - "~>"
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: '1.11'
|
|
131
134
|
- - ">="
|
|
132
135
|
- !ruby/object:Gem::Version
|
|
133
|
-
version: 1.
|
|
136
|
+
version: 1.11.1
|
|
134
137
|
type: :runtime
|
|
135
138
|
prerelease: false
|
|
136
139
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
140
|
requirements:
|
|
141
|
+
- - "~>"
|
|
142
|
+
- !ruby/object:Gem::Version
|
|
143
|
+
version: '1.11'
|
|
138
144
|
- - ">="
|
|
139
145
|
- !ruby/object:Gem::Version
|
|
140
|
-
version: 1.
|
|
146
|
+
version: 1.11.1
|
|
147
|
+
- !ruby/object:Gem::Dependency
|
|
148
|
+
name: puffing-billy
|
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - "~>"
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: 2.4.0
|
|
154
|
+
type: :runtime
|
|
155
|
+
prerelease: false
|
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - "~>"
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: 2.4.0
|
|
141
161
|
- !ruby/object:Gem::Dependency
|
|
142
162
|
name: puma
|
|
143
163
|
requirement: !ruby/object:Gem::Requirement
|
|
144
164
|
requirements:
|
|
145
|
-
- - "
|
|
165
|
+
- - "~>"
|
|
146
166
|
- !ruby/object:Gem::Version
|
|
147
|
-
version: '
|
|
167
|
+
version: '5.0'
|
|
148
168
|
type: :runtime
|
|
149
169
|
prerelease: false
|
|
150
170
|
version_requirements: !ruby/object:Gem::Requirement
|
|
151
171
|
requirements:
|
|
152
|
-
- - "
|
|
172
|
+
- - "~>"
|
|
153
173
|
- !ruby/object:Gem::Version
|
|
154
|
-
version: '
|
|
174
|
+
version: '5.0'
|
|
155
175
|
- !ruby/object:Gem::Dependency
|
|
156
176
|
name: rails-controller-testing
|
|
157
177
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -195,61 +215,61 @@ dependencies:
|
|
|
195
215
|
- !ruby/object:Gem::Version
|
|
196
216
|
version: 0.9.1
|
|
197
217
|
- !ruby/object:Gem::Dependency
|
|
198
|
-
name:
|
|
218
|
+
name: rspec_junit_formatter
|
|
199
219
|
requirement: !ruby/object:Gem::Requirement
|
|
200
220
|
requirements:
|
|
201
221
|
- - "~>"
|
|
202
222
|
- !ruby/object:Gem::Version
|
|
203
|
-
version:
|
|
223
|
+
version: 0.3.0
|
|
204
224
|
type: :runtime
|
|
205
225
|
prerelease: false
|
|
206
226
|
version_requirements: !ruby/object:Gem::Requirement
|
|
207
227
|
requirements:
|
|
208
228
|
- - "~>"
|
|
209
229
|
- !ruby/object:Gem::Version
|
|
210
|
-
version:
|
|
230
|
+
version: 0.3.0
|
|
211
231
|
- !ruby/object:Gem::Dependency
|
|
212
|
-
name: rspec-
|
|
232
|
+
name: rspec-rails
|
|
213
233
|
requirement: !ruby/object:Gem::Requirement
|
|
214
234
|
requirements:
|
|
215
235
|
- - "~>"
|
|
216
236
|
- !ruby/object:Gem::Version
|
|
217
|
-
version:
|
|
237
|
+
version: '3.7'
|
|
218
238
|
type: :runtime
|
|
219
239
|
prerelease: false
|
|
220
240
|
version_requirements: !ruby/object:Gem::Requirement
|
|
221
241
|
requirements:
|
|
222
242
|
- - "~>"
|
|
223
243
|
- !ruby/object:Gem::Version
|
|
224
|
-
version:
|
|
244
|
+
version: '3.7'
|
|
225
245
|
- !ruby/object:Gem::Dependency
|
|
226
|
-
name:
|
|
246
|
+
name: rspec-retry
|
|
227
247
|
requirement: !ruby/object:Gem::Requirement
|
|
228
248
|
requirements:
|
|
229
249
|
- - "~>"
|
|
230
250
|
- !ruby/object:Gem::Version
|
|
231
|
-
version: 0.
|
|
251
|
+
version: 0.6.2
|
|
232
252
|
type: :runtime
|
|
233
253
|
prerelease: false
|
|
234
254
|
version_requirements: !ruby/object:Gem::Requirement
|
|
235
255
|
requirements:
|
|
236
256
|
- - "~>"
|
|
237
257
|
- !ruby/object:Gem::Version
|
|
238
|
-
version: 0.
|
|
258
|
+
version: 0.6.2
|
|
239
259
|
- !ruby/object:Gem::Dependency
|
|
240
260
|
name: rubocop
|
|
241
261
|
requirement: !ruby/object:Gem::Requirement
|
|
242
262
|
requirements:
|
|
243
263
|
- - "~>"
|
|
244
264
|
- !ruby/object:Gem::Version
|
|
245
|
-
version: 0.
|
|
265
|
+
version: 0.92.0
|
|
246
266
|
type: :runtime
|
|
247
267
|
prerelease: false
|
|
248
268
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
269
|
requirements:
|
|
250
270
|
- - "~>"
|
|
251
271
|
- !ruby/object:Gem::Version
|
|
252
|
-
version: 0.
|
|
272
|
+
version: 0.92.0
|
|
253
273
|
- !ruby/object:Gem::Dependency
|
|
254
274
|
name: rubocop-rails
|
|
255
275
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -334,6 +354,20 @@ dependencies:
|
|
|
334
354
|
- - "~>"
|
|
335
355
|
- !ruby/object:Gem::Version
|
|
336
356
|
version: 0.1.1
|
|
357
|
+
- !ruby/object:Gem::Dependency
|
|
358
|
+
name: vcr
|
|
359
|
+
requirement: !ruby/object:Gem::Requirement
|
|
360
|
+
requirements:
|
|
361
|
+
- - "~>"
|
|
362
|
+
- !ruby/object:Gem::Version
|
|
363
|
+
version: '6.0'
|
|
364
|
+
type: :runtime
|
|
365
|
+
prerelease: false
|
|
366
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
367
|
+
requirements:
|
|
368
|
+
- - "~>"
|
|
369
|
+
- !ruby/object:Gem::Version
|
|
370
|
+
version: '6.0'
|
|
337
371
|
- !ruby/object:Gem::Dependency
|
|
338
372
|
name: webmock
|
|
339
373
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -378,6 +412,7 @@ files:
|
|
|
378
412
|
- app/commands/decidim/dummy_resources/create_dummy_resource.rb
|
|
379
413
|
- app/controllers/decidim/dummy_resources/dummy_resources_controller.rb
|
|
380
414
|
- app/forms/decidim/dummy_resources/dummy_resource_form.rb
|
|
415
|
+
- app/mailers/decidim/dummy_resources/dummy_resource_mailer.rb
|
|
381
416
|
- app/views/decidim/dummy_resource/_linked_dummys.html.erb
|
|
382
417
|
- app/views/decidim/dummy_resources/dummy_resources/foo.html.erb
|
|
383
418
|
- app/views/decidim/dummy_resources/dummy_resources/show.html.erb
|
|
@@ -434,12 +469,14 @@ files:
|
|
|
434
469
|
- config/locales/pt.yml
|
|
435
470
|
- config/locales/ro-RO.yml
|
|
436
471
|
- config/locales/ru.yml
|
|
472
|
+
- config/locales/si-LK.yml
|
|
437
473
|
- config/locales/sk-SK.yml
|
|
438
474
|
- config/locales/sk.yml
|
|
439
475
|
- config/locales/sl.yml
|
|
440
476
|
- config/locales/so-SO.yml
|
|
441
477
|
- config/locales/sr-CS.yml
|
|
442
478
|
- config/locales/sv.yml
|
|
479
|
+
- config/locales/sw-KE.yml
|
|
443
480
|
- config/locales/ti-ER.yml
|
|
444
481
|
- config/locales/tr-TR.yml
|
|
445
482
|
- config/locales/uk.yml
|
|
@@ -448,6 +485,7 @@ files:
|
|
|
448
485
|
- config/locales/zh-CN.yml
|
|
449
486
|
- config/locales/zh-TW.yml
|
|
450
487
|
- lib/decidim/dev.rb
|
|
488
|
+
- lib/decidim/dev/assets/5000x5000.png
|
|
451
489
|
- lib/decidim/dev/assets/Exampledocument.pdf
|
|
452
490
|
- lib/decidim/dev/assets/assemblies.json
|
|
453
491
|
- lib/decidim/dev/assets/assemblies_with_null.json
|
|
@@ -462,6 +500,11 @@ files:
|
|
|
462
500
|
- lib/decidim/dev/assets/id.jpg
|
|
463
501
|
- lib/decidim/dev/assets/import_participatory_space_private_users.csv
|
|
464
502
|
- lib/decidim/dev/assets/import_participatory_space_private_users_nok.csv
|
|
503
|
+
- lib/decidim/dev/assets/import_proposals.csv
|
|
504
|
+
- lib/decidim/dev/assets/import_proposals.json
|
|
505
|
+
- lib/decidim/dev/assets/import_proposals.xls
|
|
506
|
+
- lib/decidim/dev/assets/import_proposals_broken.csv
|
|
507
|
+
- lib/decidim/dev/assets/invalid.jpeg
|
|
465
508
|
- lib/decidim/dev/assets/iso-8859-15.md
|
|
466
509
|
- lib/decidim/dev/assets/malicious.jpg
|
|
467
510
|
- lib/decidim/dev/assets/participatory_processes.json
|
|
@@ -469,6 +512,10 @@ files:
|
|
|
469
512
|
- lib/decidim/dev/assets/participatory_text.md
|
|
470
513
|
- lib/decidim/dev/assets/participatory_text.odt
|
|
471
514
|
- lib/decidim/dev/assets/participatory_text_wrong.odt
|
|
515
|
+
- lib/decidim/dev/assets/private_key.jwk
|
|
516
|
+
- lib/decidim/dev/assets/private_key2.jwk
|
|
517
|
+
- lib/decidim/dev/assets/public_key.jwk
|
|
518
|
+
- lib/decidim/dev/assets/public_key2.jwk
|
|
472
519
|
- lib/decidim/dev/assets/verify_user_groups.csv
|
|
473
520
|
- lib/decidim/dev/common_rake.rb
|
|
474
521
|
- lib/decidim/dev/dummy_translator.rb
|
|
@@ -491,7 +538,6 @@ files:
|
|
|
491
538
|
- lib/decidim/dev/test/rspec_support/component_context.rb
|
|
492
539
|
- lib/decidim/dev/test/rspec_support/confirmation_helpers.rb
|
|
493
540
|
- lib/decidim/dev/test/rspec_support/content_processing.rb
|
|
494
|
-
- lib/decidim/dev/test/rspec_support/download_helper.rb
|
|
495
541
|
- lib/decidim/dev/test/rspec_support/factory_bot.rb
|
|
496
542
|
- lib/decidim/dev/test/rspec_support/frontend.rb
|
|
497
543
|
- lib/decidim/dev/test/rspec_support/gamification.rb
|
|
@@ -501,14 +547,17 @@ files:
|
|
|
501
547
|
- lib/decidim/dev/test/rspec_support/orderly_matchers.rb
|
|
502
548
|
- lib/decidim/dev/test/rspec_support/organization.rb
|
|
503
549
|
- lib/decidim/dev/test/rspec_support/permissions_shared_examples.rb
|
|
550
|
+
- lib/decidim/dev/test/rspec_support/puffing_billy.rb
|
|
504
551
|
- lib/decidim/dev/test/rspec_support/rake_tasks.rb
|
|
505
552
|
- lib/decidim/dev/test/rspec_support/react_select.rb
|
|
506
553
|
- lib/decidim/dev/test/rspec_support/route_helpers.rb
|
|
507
554
|
- lib/decidim/dev/test/rspec_support/timezone.rb
|
|
508
555
|
- lib/decidim/dev/test/rspec_support/translation_helpers.rb
|
|
556
|
+
- lib/decidim/dev/test/rspec_support/vcr.rb
|
|
509
557
|
- lib/decidim/dev/test/rspec_support/warden.rb
|
|
510
558
|
- lib/decidim/dev/test/rspec_support/webmock.rb
|
|
511
559
|
- lib/decidim/dev/test/rspec_support/wisper.rb
|
|
560
|
+
- lib/decidim/dev/test/rspec_support/z_download_helper.rb
|
|
512
561
|
- lib/decidim/dev/test/spec_helper.rb
|
|
513
562
|
- lib/decidim/dev/version.rb
|
|
514
563
|
- lib/tasks/generators.rake
|
|
@@ -517,7 +566,7 @@ homepage: https://github.com/decidim/decidim
|
|
|
517
566
|
licenses:
|
|
518
567
|
- AGPL-3.0
|
|
519
568
|
metadata: {}
|
|
520
|
-
post_install_message:
|
|
569
|
+
post_install_message:
|
|
521
570
|
rdoc_options: []
|
|
522
571
|
require_paths:
|
|
523
572
|
- lib
|
|
@@ -525,15 +574,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
525
574
|
requirements:
|
|
526
575
|
- - ">="
|
|
527
576
|
- !ruby/object:Gem::Version
|
|
528
|
-
version: '2.
|
|
577
|
+
version: '2.7'
|
|
529
578
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
530
579
|
requirements:
|
|
531
|
-
- - "
|
|
580
|
+
- - ">"
|
|
532
581
|
- !ruby/object:Gem::Version
|
|
533
|
-
version:
|
|
582
|
+
version: 1.3.1
|
|
534
583
|
requirements: []
|
|
535
|
-
rubygems_version: 3.
|
|
536
|
-
signing_key:
|
|
584
|
+
rubygems_version: 3.1.2
|
|
585
|
+
signing_key:
|
|
537
586
|
specification_version: 4
|
|
538
587
|
summary: Decidim dev tools
|
|
539
588
|
test_files: []
|