From 9042ca0b87f200411afbabad7cbecbb924f2bc39 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Mon, 2 Jul 2018 12:48:46 -0500 Subject: [PATCH] Parse mask icon from HTML --- lib/manifique/web_client.rb | 12 ++++++++++-- spec/manifique/web_client_spec.rb | 4 ++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/manifique/web_client.rb b/lib/manifique/web_client.rb index 5b6f72a..cfa4c4c 100644 --- a/lib/manifique/web_client.rb +++ b/lib/manifique/web_client.rb @@ -92,8 +92,7 @@ module Manifique end def parse_icons_from_html - icon_links = @html.css("link[rel=icon]") - if icon_links.any? + if icon_links = @html.css("link[rel=icon]") icon_links.each do |link| icon = {} icon["src"] = link.attributes["href"].value rescue nil @@ -104,6 +103,15 @@ module Manifique end end + if mask_icon_link = @html.at_css("link[rel=mask-icon]") + icon = { "purpose" => "mask-icon" } + icon["src"] = mask_icon_link.attributes["href"].value rescue nil + return if icon["src"].to_s.empty? + icon["type"] = link.attributes["type"].value rescue get_icon_type(icon["src"]) + icon["color"] = mask_icon_link.attributes["color"].value rescue nil + @metadata.icons.push icon + end + @metadata.from_html.push "icons" unless @metadata.icons.empty? end diff --git a/spec/manifique/web_client_spec.rb b/spec/manifique/web_client_spec.rb index e62ab3a..4db4d30 100644 --- a/spec/manifique/web_client_spec.rb +++ b/spec/manifique/web_client_spec.rb @@ -170,6 +170,10 @@ RSpec.describe Manifique::WebClient do png_icons = subject.icons.select{|i| i["type"] == "image/png"} expect(png_icons.length).to eq(5) expect(subject.icons.find{|i| i["sizes"] == "512x512"}["src"]).to eq( "/application_icon_x512.png") + mask_icon = subject.icons.find{|i| i["purpose"] == "mask-icon"} + expect(mask_icon["color"]).to eq("#2b90d9") + expect(mask_icon["type"]).to eq("image/svg") + expect(mask_icon["sizes"]).to be_nil end it "knows which properties were loaded from HTML" do