canvas_link_migrator 1.0.13 → 1.0.15

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: 9b5936b2c0b84390589696838b2f7409d71467a11b20f81c63176e8e99a54caa
4
- data.tar.gz: 49c4a0df338db02c8b658c49249f2fb8c3f9a75d60790f6fd72a405242682fca
3
+ metadata.gz: 36b5ebb39673be4a7105bc459809c1faa333899c9d709d665cabd00f4242401d
4
+ data.tar.gz: 6702833e94aa9a7fd3bb3265199c2b7caf269e30fd0c82b5c15028d810d44c14
5
5
  SHA512:
6
- metadata.gz: c3c0f69c22fd75d7f783fa017993c7803f7504aa2e4b353917b33ec730a2cf0577e3f8941b58472a6ab694ab92bd667be12c5d65300119d7febea6cca0b9d45f
7
- data.tar.gz: 3e6158123ea5ad27bd55033865474133d9bdc7e663006c05eb3d8efb76bf7fe49a6041e0b37d19d1d0ca606aba4bbb329caa9cd4b92e13db8b97fc65dace5d24
6
+ metadata.gz: e8a5d21a3c0a74e5805163d724e42c64a0db4a6d2b18f85f637e401f6ca09089aab287e8afb88b22150cd7eadf90e51a1ba3e78d9bb7892968bbf57055554bfe
7
+ data.tar.gz: 1fd447f0548f8c84a2fdea0a6a791679eea31c6f4dede5502d4191dcf96b994d4072b303a6ba713151bc03aaddefe6ad003e556ffd4ce39880f8ce792a216522
@@ -211,7 +211,7 @@ module CanvasLinkMigrator
211
211
  elsif url =~ %r{\$CANVAS_COURSE_REFERENCE\$/modules/items/([^?]*)(\?.*)?}
212
212
  unresolved(:module_item, migration_id: $1, query: $2)
213
213
  elsif url =~ %r{\$CANVAS_COURSE_REFERENCE\$/file_ref/([^/?#]+)(.*)}
214
- in_media_iframe = (attr == "src" && ["iframe", "source"].include?(node.name) && node["data-media-id"])
214
+ in_media_iframe = (attr == "src" && ["iframe", "source"].include?(node.name) && (node["data-media-id"] || node["data-media-type"]))
215
215
  rest = in_media_iframe ? media_params(node["data-media-type"]) : $2
216
216
  unresolved(:file_ref,
217
217
  migration_id: $1,
@@ -226,6 +226,7 @@ module CanvasLinkMigrator
226
226
  end
227
227
  end
228
228
  new_url += new_action.presence || "/preview"
229
+ new_url.chomp!("/")
229
230
  new_url += "?#{qs.join("&")}" if qs.present?
230
231
  end
231
232
  rel_path_parts.shift
@@ -1,3 +1,3 @@
1
1
  module CanvasLinkMigrator
2
- VERSION = "1.0.13"
2
+ VERSION = "1.0.15"
3
3
  end
@@ -32,6 +32,12 @@ describe CanvasLinkMigrator::LinkParser do
32
32
  expect(parsed[:target_blank]).to be true
33
33
  end
34
34
 
35
+ it "checks data-media-type attribute to determine in_media_iframe" do
36
+ doc = Nokogiri::HTML5.fragment("<p><iframe data-media-type=\"video\" src=\"$CANVAS_COURSE_REFERENCE$/file_ref/whatevs\"></iframe></p>")
37
+ parsed = parser.parse_url("$CANVAS_COURSE_REFERENCE$/file_ref/whatevs", doc.at_css('iframe'), "src")
38
+ expect(parsed[:in_media_iframe]).to eq "video"
39
+ end
40
+
35
41
  it "converts inner html of anchor tags when appropriate" do
36
42
  doc = Nokogiri::HTML5.fragment("<a href=\"$WIKI_REFERENCE$/pages/1\">$WIKI_REFERENCE$/pages/1</a>")
37
43
  parser.convert_link(doc.at_css('a'), "href","wiki_page", "migrationid", "")
@@ -57,6 +57,17 @@ describe CanvasLinkMigrator::LinkResolver do
57
57
  expect(link[:new_value]).to eq("/courses/2/files/6?verifier=u6")
58
58
  end
59
59
 
60
+ it "does not leave a trailing slash on the url with a `canvas_` query param" do
61
+ link = {
62
+ link_type: :file,
63
+ migration_id: "F",
64
+ rel_path: "subfolder/with a space/test.png?canvas_=1&amp;amp;canvas_qs_wrap=1" }
65
+
66
+ resolver.resolve_link!(link)
67
+
68
+ expect(link[:new_value]).to eq("/courses/2/files/6?verifier=u6&wrap=1")
69
+ end
70
+
60
71
  it "converts attachment urls" do
61
72
  link = { link_type: :object, type: "attachments", migration_id: "E", query: "?foo=bar" }
62
73
  resolver.resolve_link!(link)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canvas_link_migrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mysti Lilla
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2024-07-24 00:00:00.000000000 Z
14
+ date: 2024-10-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport