ソースを参照

Added tests for new image functionality

MarcinZiabek 2 年 前
コミット
f1ff03fede

+ 41 - 0
Source/QuestPDF.Examples/ImageExamples.cs

@@ -5,6 +5,7 @@ using QuestPDF.Drawing.Exceptions;
 using QuestPDF.Examples.Engine;
 using QuestPDF.Fluent;
 using QuestPDF.Helpers;
+using QuestPDF.Infrastructure;
 
 namespace QuestPDF.Examples
 {
@@ -67,6 +68,46 @@ namespace QuestPDF.Examples
                     });
                 });
         }
+
+        [Test]
+        public void DpiSetting()
+        {
+            RenderingTest
+                .Create()
+                .PageSize(400, 600)
+                .ProduceImages()
+                .ShowResults()
+                .Render(page =>
+                {
+                    page.Padding(10).Column(column =>
+                    {
+                        column.Spacing(10);
+                        
+                        column.Item().Image("photo.jpg").WithRasterDpi(16);
+                        column.Item().Image("photo.jpg").WithRasterDpi(72);
+                    });
+                });
+        }
+        
+        [Test]
+        public void CompressionSetting()
+        {
+            RenderingTest
+                .Create()
+                .PageSize(400, 600)
+                .ProduceImages()
+                .ShowResults()
+                .Render(page =>
+                {
+                    page.Padding(10).Column(column =>
+                    {
+                        column.Spacing(10);
+                        
+                        column.Item().Image("photo.jpg").WithCompressionQuality(ImageCompressionQuality.VeryLow);
+                        column.Item().Image("photo.jpg").WithCompressionQuality(ImageCompressionQuality.High);
+                    });
+                });
+        }
         
         [Test]
         public void Exception()

+ 3 - 0
Source/QuestPDF.Examples/QuestPDF.Examples.csproj

@@ -35,6 +35,9 @@
       <None Update="multilingual.png">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       </None>
+      <None Update="photo.jpg">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
     </ItemGroup>
 
 </Project>

BIN
Source/QuestPDF.Examples/photo.jpg


+ 9 - 16
Source/QuestPDF.UnitTests/ImageTests.cs

@@ -1,4 +1,5 @@
 using System;
+using System.IO;
 using System.Linq;
 using System.Net.Mime;
 using FluentAssertions;
@@ -62,19 +63,19 @@ namespace QuestPDF.UnitTests
         [Test]
         public void UsingSharedImageShouldNotDrasticallyIncreaseDocumentSize()
         {
-            var placeholderImage = Placeholders.Image(1000, 200);
+            var photo = File.ReadAllBytes("Resources/photo.jpg");
 
             var documentWithSingleImageSize = GetDocumentSize(container =>
             {
-                container.Image(placeholderImage);
+                container.Image(photo);
             });
 
             var documentWithMultipleImagesSize = GetDocumentSize(container =>
             {
                 container.Column(column =>
                 {
-                    foreach (var i in Enumerable.Range(0, 100))
-                        column.Item().Image(placeholderImage);
+                    foreach (var i in Enumerable.Range(0, 10))
+                        column.Item().Image(photo);
                 });
             });
 
@@ -82,25 +83,17 @@ namespace QuestPDF.UnitTests
             {
                 container.Column(column =>
                 {
-                    var sharedImage = DocumentImage.FromBinaryData(placeholderImage).DisposeAfterDocumentGeneration();
+                    var sharedImage = DocumentImage.FromBinaryData(photo).DisposeAfterDocumentGeneration();
                     
-                    foreach (var i in Enumerable.Range(0, 100))
+                    foreach (var i in Enumerable.Range(0, 10))
                         column.Item().Image(sharedImage);
                 });
             });
 
-            (documentWithMultipleImagesSize / (float)documentWithSingleImageSize).Should().BeInRange(90, 100);
-            (documentWithSingleImageUsedMultipleTimesSize / (float)documentWithSingleImageSize).Should().BeInRange(1f, 1.5f);
+            (documentWithMultipleImagesSize / (float)documentWithSingleImageSize).Should().BeInRange(9.9f, 10);
+            (documentWithSingleImageUsedMultipleTimesSize / (float)documentWithSingleImageSize).Should().BeInRange(1f, 1.05f);
         }
-        
-        [Test]
-        public void ImageShouldNotBeScaledAboveItsNativeResolution()
-        {
-            var image = Placeholders.Image(200, 200);
 
-            // TODO
-        }
-        
         private static int GetDocumentSize(Action<IContainer> container)
         {
             return Document

+ 6 - 0
Source/QuestPDF.UnitTests/QuestPDF.UnitTests.csproj

@@ -27,4 +27,10 @@
       </EmbeddedResource>
     </ItemGroup>
 
+    <ItemGroup>
+      <None Update="Resources\photo.jpg">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+    </ItemGroup>
+
 </Project>

BIN
Source/QuestPDF.UnitTests/Resources/photo.jpg