public void MakePdf_BookNameIsChinese_OutputsPdf() { var maker = new PdfMaker(); using (var input = TempFile.WithFilename("北京.htm")) using (var output = TempFile.WithFilename("北京.pdf")) { File.WriteAllText(input.Path, "<html><body>北京</body></html>"); File.Delete(output.Path); RunMakePdf((worker, args, owner) => maker.MakePdf(input.Path, output.Path, "A5", false, PublishModel.BookletLayoutMethod.SideFold, PublishModel.BookletPortions.BookletPages, worker, args, owner)); //we don't actually have a way of knowing it did a booklet Assert.IsTrue(File.Exists(output.Path)); } using (var input = TempFile.WithFilename("എന്റെ ബുക്ക്.htm")) using (var output = TempFile.WithFilename("എന്റെ ബുക്ക്.pdf")) { File.WriteAllText(input.Path, "<html><body>എന്റെ ബുക്ക്</body></html>"); File.Delete(output.Path); RunMakePdf((worker, args, owner) => maker.MakePdf(input.Path, output.Path, "A5", false, PublishModel.BookletLayoutMethod.SideFold, PublishModel.BookletPortions.BookletPages, worker, args, owner)); //we don't actually have a way of knowing it did a booklet Assert.IsTrue(File.Exists(output.Path)); } }
/// <summary> /// Runs PdfMaker.MakePdf() with the desired arguments. Note that the implementation (as of March 2015) /// uses an external program to generate the PDF from the HTML file, so it doesn't need to be run on /// a background thread. The process includes a (possibly overgenerous) timeout, so we don't try to /// impose one here. /// </summary> /// <remarks> /// Running this on a background thread would be okay, except that on Linux, the interaction between /// Mono and NUnit and the Bloom method result in the BackgroundWorker.RunWorkerCompleted event /// never being fired if tests other than those in this file are run along with these tests. This is /// almost certainly an obscure bug in Mono. Running the method directly as we do here sidesteps that /// problem. (See https://jira.sil.org/browse/BL-831.) /// </remarks> void RunMakePdf(PdfMaker maker, string input, string output, string paperSize, bool landscape, bool saveMemoryMode, bool rightToLeft, PublishModel.BookletLayoutMethod layout, PublishModel.BookletPortions portion) { // Passing in a DoWorkEventArgs object prevents a possible exception being thrown. Which may not // really matter much in the test situation since NUnit would catch the exception. But I'd rather // have a nice test failure message than an unexpected exception caught message. var eventArgs = new DoWorkEventArgs(null); maker.MakePdf(input, output, paperSize, landscape, saveMemoryMode, rightToLeft, layout, portion, null, eventArgs, null); }
public void MakePdf_BookStyleIsBooklet_OutputsPdf() { var maker = new PdfMaker(); using (var input = TempFile.WithExtension("htm")) using (var output = new TempFile()) { File.WriteAllText(input.Path, "<html><body>Hello</body></html>"); File.Delete(output.Path); maker.MakePdf(input.Path, output.Path, "A5", false, PublishModel.BookletLayoutMethod.SideFold, PublishModel.BookletPortions.BookletPages, new DoWorkEventArgs(null)); //we don't actually have a way of knowing it did a booklet Assert.IsTrue(File.Exists(output.Path)); } }
public void MakePdf_BookStyleIsNone_OutputsPdf() { var maker = new PdfMaker(); using (var input = TempFile.WithExtension("htm")) using (var output = new TempFile()) { File.WriteAllText(input.Path, "<html><body>Hello</body></html>"); File.Delete(output.Path); RunMakePdf((worker, args, owner) => maker.MakePdf(input.Path, output.Path, "a5", false, PublishModel.BookletLayoutMethod.SideFold, PublishModel.BookletPortions.AllPagesNoBooklet, worker, args, owner)); //we don't actually have a way of knowing it did a booklet Assert.IsTrue(File.Exists(output.Path)); } }
/// <summary> /// Runs PdfMaker.MakePdf() with the desired arguments. Note that the implementation (as of March 2015) /// uses an external program to generate the PDF from the HTML file, so it doesn't need to be run on /// a background thread. The process includes a (possibly overgenerous) timeout, so we don't try to /// impose one here. /// </summary> /// <remarks> /// Running this on a background thread would be okay, except that on Linux, the interaction between /// Mono and NUnit and the Bloom method result in the BackgroundWorker.RunWorkerCompleted event /// never being fired if tests other than those in this file are run along with these tests. This is /// almost certainly an obscure bug in Mono. Running the method directly as we do here sidesteps that /// problem. (See https://jira.sil.org/browse/BL-831.) /// </remarks> void RunMakePdf(PdfMaker maker, string input, string output, string paperSize, bool landscape, bool saveMemoryMode, bool rightToLeft, PublishModel.BookletLayoutMethod layout, PublishModel.BookletPortions portion) { // Passing in a DoWorkEventArgs object prevents a possible exception being thrown. Which may not // really matter much in the test situation since NUnit would catch the exception. But I'd rather // have a nice test failure message than an unexpected exception caught message. var eventArgs = new DoWorkEventArgs(null); maker.MakePdf(new PdfMakingSpecs() { InputHtmlPath = input, OutputPdfPath = output, PaperSizeName = paperSize, Landscape = landscape, SaveMemoryMode = saveMemoryMode, LayoutPagesForRightToLeft = rightToLeft, BooketLayoutMethod = layout, BookletPortion = portion }, null, eventArgs, null); }