From 6d7f305e7c40229149a01cc118b4ea569842e2c9 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 16 Sep 2016 16:04:35 -0700 Subject: [PATCH] Add tests for assets directory support. --- .../{style.scss => test-theme-black.scss} | 0 .../test-theme/assets/img/another-logo.png | 1 + test/fixtures/test-theme/assets/img/logo.png | Bin 0 -> 3514 bytes test/fixtures/test-theme/assets/style.scss | 3 + test/test_theme.rb | 4 +- test/test_theme_assets_reader.rb | 61 ++++++++++++++++++ 6 files changed, 67 insertions(+), 2 deletions(-) rename test/fixtures/test-theme/_sass/{style.scss => test-theme-black.scss} (100%) create mode 120000 test/fixtures/test-theme/assets/img/another-logo.png create mode 100644 test/fixtures/test-theme/assets/img/logo.png create mode 100644 test/fixtures/test-theme/assets/style.scss create mode 100644 test/test_theme_assets_reader.rb diff --git a/test/fixtures/test-theme/_sass/style.scss b/test/fixtures/test-theme/_sass/test-theme-black.scss similarity index 100% rename from test/fixtures/test-theme/_sass/style.scss rename to test/fixtures/test-theme/_sass/test-theme-black.scss diff --git a/test/fixtures/test-theme/assets/img/another-logo.png b/test/fixtures/test-theme/assets/img/another-logo.png new file mode 120000 index 00000000..bd36e718 --- /dev/null +++ b/test/fixtures/test-theme/assets/img/another-logo.png @@ -0,0 +1 @@ +logo.png \ No newline at end of file diff --git a/test/fixtures/test-theme/assets/img/logo.png b/test/fixtures/test-theme/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0d1cbe53d68031a7bb33ca2fd765d7cffb34f000 GIT binary patch literal 3514 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 "test-theme", + "theme-color" => "black" + ) + assert @site.theme + end + + def assert_file_with_relative_path(haystack, relative_path) + assert haystack.any? { |f| + f.relative_path == relative_path + }, "Site should read in the #{relative_path} file, but it was not found in #{haystack.inspect}" + end + + def refute_file_with_relative_path(haystack, relative_path) + refute haystack.any? { |f| + f.relative_path == relative_path + }, "Site should not have read in the #{relative_path} file, but it was found in #{haystack.inspect}" + end + + context "with a valid theme" do + should "read all assets" do + ThemeAssetsReader.new(@site).read + assert_file_with_relative_path @site.static_files, "assets/img/logo.png" + assert_file_with_relative_path @site.pages, "assets/style.scss" + end + + should "convert pages" do + @site.process + + file = @site.pages.find { |f| f.relative_path == "assets/style.scss" } + refute_nil file + assert_equal @site.in_dest_dir("assets/style.css"), file.destination(@site.dest) + assert_includes file.output, ".sample {\n color: black; }" + end + end + + context "with a valid theme without an assets dir" do + should "not read any assets" do + allow(Theme).to receive(:realpath_for).with(:sass).and_return(nil) + site = fixture_site("theme" => "test-theme") + ThemeAssetsReader.new(site).read + refute_file_with_relative_path @site.static_files, "assets/img/logo.png" + refute_file_with_relative_path @site.pages, "assets/style.scss" + end + end + + context "with no theme" do + should "not read any assets" do + site = fixture_site("theme" => nil) + ThemeAssetsReader.new(site).read + refute_file_with_relative_path @site.static_files, "assets/img/logo.png" + refute_file_with_relative_path @site.pages, "assets/style.scss" + end + + end + +end