canvas_link_migrator 1.0.12 → 1.0.14

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: c7cbc11edecf38395bcf3dfda752a5a2946e9f691f86f95f35d80fe12a28f228
4
- data.tar.gz: d55a7c3509ce6da3b423e20b119f17ad5dbfd61f32d8f4f6a926ae0e84da343f
3
+ metadata.gz: 404df3ac84fac220f5c7b18e89478b72a7a6cf03d1c41f7ed7d7390ec2da7ba2
4
+ data.tar.gz: a1833675b038c7b285d2589e52e0dd62df0ad77efc92aff8c64021b66d498996
5
5
  SHA512:
6
- metadata.gz: 8f54e3e63f1a47b50f0568bfcfce57f2b15c59a7097e7ea4fde9a89433554cba0a24bc60a854e267d2efab49c4cceec532d2c3a99e2b2b779cadbcc379a0c349
7
- data.tar.gz: 5b290e62a21a044efea17939e03ab3cd197e9acf7030fda2683b8f4c9a0033ef4ff72fa5f82b8dfe09affb1f3a86d8c4c55c21ef853768b93e16a6f19041a0ac
6
+ metadata.gz: 95b7dfbae704889c1d8b2301219c59123f49365d2093bdc426631d3fb45e63ff6813f811561372726ccf18eabe338b5ea056908c9a186b0fefc6d16ba3fe6dd6
7
+ data.tar.gz: 516747d2f7dc023d1a4dbeb49b5b8f51ed827eb9c2aa0486d9a65db1dab708d9f12e450f822d61f063f37bf5319318b9060e83ca4c954f6509a78995dd995401
@@ -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,
@@ -232,7 +232,7 @@ module CanvasLinkMigrator
232
232
  elsif url =~ %r{\$IMS(?:-|_)CC(?:-|_)FILEBASE\$/(.*)}
233
233
  rel_path = URI::DEFAULT_PARSER.unescape($1)
234
234
  if (attr == "href" && node["class"]&.include?("instructure_inline_media_comment")) ||
235
- (attr == "src" && ["iframe", "source"].include?(node.name))
235
+ (attr == "src" && ["iframe", "source"].include?(node.name) && (node["data-media-id"] || node["data-media-type"]))
236
236
  unresolved(:media_object, rel_path: rel_path)
237
237
  else
238
238
  unresolved(:file, rel_path: rel_path)
@@ -1,3 +1,3 @@
1
1
  module CanvasLinkMigrator
2
- VERSION = "1.0.12"
2
+ VERSION = "1.0.14"
3
3
  end
@@ -400,5 +400,16 @@ describe CanvasLinkMigrator::ImportedHtmlConverter do
400
400
  test_string = '<p><a href="#anchor_ref">ref</a></p>'
401
401
  expect(@converter.convert_exported_html(test_string)).to eq([test_string, nil])
402
402
  end
403
+
404
+ it "converts iframe srcs that point to non-media files" do
405
+ test_string = <<~HTML
406
+ <p><iframe style="width: 100%; height: 100vh; border: none;" src="$IMS-CC-FILEBASE$/subfolder/test.png?canvas_download=1"></iframe></p>
407
+ HTML
408
+ converted_string = <<~HTML
409
+ <p><iframe style="width: 100%; height: 100vh; border: none;" src="/courses/2/files/7/download?verifier=u7"></iframe></p>
410
+ HTML
411
+ html = @converter.convert_exported_html(test_string)
412
+ expect(html[0]).to eq converted_string
413
+ end
403
414
  end
404
415
  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", "")
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.12
4
+ version: 1.0.14
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-06-14 00:00:00.000000000 Z
14
+ date: 2024-08-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport