Exemplo n.º 1
0
        public void ProcessSrcFile_EmptyString_NotPresentInOutput()
        {
            string contents = @"
somevar.Text = '';
".Replace("'", "\"");

            string expected =
                @"msgid ''
msgstr ''
'Project-Id-Version: \n'
'POT-Creation-Date: .*
'PO-Revision-Date: \n'
'Last-Translator: \n'
'Language-Team: \n'
'Plural-Forms: \n'
'MIME-Version: 1.0\n'
'Content-Type: text/plain; charset=UTF-8\n'
'Content-Transfer-Encoding: 8bit\n'

# Project-Id-Version: 
# Report-Msgid-Bugs-To: 
# POT-Creation-Date: .*
# Content-Type: text/plain; charset=UTF-8

".Replace("'", "\"");

            using (var e = new EnvironmentForTest())
            {
                Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected));
            }
        }
Exemplo n.º 2
0
        public void HeadWordField_CitationFieldDisabled_UsesLexemeFormSettings()
        {
            using (var environment = new EnvironmentForTest())
            {
                environment.Template.GetField(LexEntry.WellKnownProperties.Citation).Enabled = false;

                environment.MakeEntry();
                environment.DoExport();
                environment.AssertHasAtLeastOneMatchWithArgs(
                    "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']",
                    environment.HeadwordWritingSystem.Id,
                    "redLexemeForm"
                    );

                //nb: it's not clear what the "correct" behavior is, if the citation
                //form is disabled for this user but a citation form does exist for this ws.

                environment.AssertHasAtLeastOneMatchWithArgs(
                    "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']",
                    environment.WritingSystemIds[1],
                    "greenCitation"
                    );
                environment.AssertHasAtLeastOneMatchWithArgs(
                    "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']",
                    environment.WritingSystemIds[2],
                    "blueCitation"
                    );
            }
        }
Exemplo n.º 3
0
        public void HiddenFields_AreNotOutput()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry e1 = environment.Repo.CreateItem();
                e1.LexicalForm[EnvironmentForTest.Green] = "sunset";
                e1.GetOrCreateProperty <MultiText>("color").SetAlternative(environment.WritingSystemIds[0], EnvironmentForTest.Red);
                environment.Repo.SaveItem(e1);

                var color = new Field(
                    "color",
                    "LexEntry",
                    environment.WritingSystemIds,
                    Field.MultiplicityType.ZeroOr1,
                    "MultiText"
                    );
                color.DisplayName = "color";
                environment.Template.Add(color);

                environment.DoExport();
                environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e1.Id + "']/field[@type='" + "color" + "']");

                //now make it invisible and it should disappear
                environment.Template.GetField("color").Enabled = false;

                environment.DoExport();
                environment.AssertNoMatchForXPath("lift/entry[@id='" + e1.Id + "']/field");
            }
        }
Exemplo n.º 4
0
        public void ProcessSrcFile_BackupStringWithDots_DoesNotHaveDuplicates()
        {
            var contents = @"
somevar.Text = 'Backing Up...';
".Replace("'", "\"");

            var expected =
                @"msgid ''
msgstr ''
'Project-Id-Version: Testing\n'
'POT-Creation-Date: .*
'PO-Revision-Date: \n'
'Last-Translator: \n'
'Language-Team: \n'
'Plural-Forms: \n'
'MIME-Version: 1.0\n'
'Content-Type: text/plain; charset=UTF-8\n'
'Content-Transfer-Encoding: 8bit\n'

# Project-Id-Version: Testing
# Report-Msgid-Bugs-To: [email protected]
# POT-Creation-Date: .*
# Content-Type: text/plain; charset=UTF-8


#: .*csharp.cs
msgid 'Backing Up...'
msgstr ''
".Replace("'", "\"");

            using (var e = new EnvironmentForTest())
            {
                Assert.That(e.MakePotFile(contents), Is.MultilineString(expected));
            }
        }
Exemplo n.º 5
0
		public void IsMounted_USBDrive_True()
		{
			using (var e = new EnvironmentForTest())
			{
				var uDiskDevice = e.GetUSBDevice();
				Assert.True(uDiskDevice.IsMounted);
			}
		}
Exemplo n.º 6
0
		public void TotalSpace_USBDrive_GreaterThanZero()
		{
			using (var e = new EnvironmentForTest())
			{
				var uDiskDevice = e.GetUSBDevice();
				Assert.That(uDiskDevice.TotalSize, Is.GreaterThan(0));
			}
		}
Exemplo n.º 7
0
 public void TotalSpace_USBDrive_GreaterThanZero()
 {
     using (var e = new EnvironmentForTest())
     {
         var uDiskDevice = e.GetUSBDevice();
         Assert.That(uDiskDevice.TotalSize, Is.GreaterThan(0));
     }
 }
Exemplo n.º 8
0
 public void DriveConnectionInterface_USBDrive_USB()
 {
     using (var e = new EnvironmentForTest())
     {
         var uDiskDevice = e.GetUSBDevice();
         Assert.That(uDiskDevice.DriveConnectionInterface, Is.EqualTo(UDiskDevice.Interfaces.USB));
     }
 }
Exemplo n.º 9
0
 public void IsMounted_USBDrive_True()
 {
     using (var e = new EnvironmentForTest())
     {
         var uDiskDevice = e.GetUSBDevice();
         Assert.True(uDiskDevice.IsMounted);
     }
 }
Exemplo n.º 10
0
		public void DriveConnectionInterface_USBDrive_USB()
		{
			using (var e = new EnvironmentForTest())
			{
				var uDiskDevice = e.GetUSBDevice();
				Assert.That(uDiskDevice.DriveConnectionInterface, Is.EqualTo(UDiskDevice.Interfaces.USB));
			}
		}
Exemplo n.º 11
0
		public void MountPaths_USBDrive_HasNonEmptyString()
		{
			using (var e = new EnvironmentForTest())
			{
				var uDiskDevice = e.GetUSBDevice();
				string[] mountPaths = uDiskDevice.MountPaths;
				Assert.That(mountPaths.Count(), Is.GreaterThan(0));
				Assert.That(mountPaths[0], Is.StringContaining("/media/"));
			}
		}
Exemplo n.º 12
0
 public void MountPaths_USBDrive_HasNonEmptyString()
 {
     using (var e = new EnvironmentForTest())
     {
         var      uDiskDevice = e.GetUSBDevice();
         string[] mountPaths  = uDiskDevice.MountPaths;
         Assert.That(mountPaths.Count(), Is.GreaterThan(0));
         Assert.That(mountPaths[0], Is.StringContaining("/media/"));
     }
 }
Exemplo n.º 13
0
 public void FlattenFilePaths_TwoItems_TrimsAndStringCorrect()
 {
     using (var e = new EnvironmentForTest())
     {
         var task = new Archive.Archive();
         task.BasePath       = e.BasePath;
         task.InputFilePaths = e.TwoItemsWithBasePath("a.cs", "b.cs");
         var result = task.FlattenFilePaths(task.InputFilePaths, ' ', false);
         Assert.AreEqual("a.cs b.cs", result);
     }
 }
Exemplo n.º 14
0
		public void FlattenFilePaths_TwoItems_TrimsAndStringCorrect()
		{
			using (var e = new EnvironmentForTest())
			{
				var task = new Archive();
				task.BasePath = e.BasePath;
				task.InputFilePaths = e.TwoItemsWithBasePath("a.cs", "b.cs");
				var result = task.FlattenFilePaths(task.InputFilePaths, ' ', false);
				Assert.AreEqual("a.cs b.cs", result);
			}
		}
Exemplo n.º 15
0
        public void GetFileVersion_DataHasVersion_CorrectVersion()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);

                var migrator = new FileMigrator(7, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));

                Assert.AreEqual(1, migrator.GetFileVersion(e.TestFilePath));
            }
        }
Exemplo n.º 16
0
 public void FlattenFilePaths_TwoItemsForceQuote_TrimsAndQuotesStringCorrect()
 {
     using (new EnvironmentForTest())
     {
         var task = new Archive.Archive {
             BasePath       = EnvironmentForTest.BasePath,
             InputFilePaths = EnvironmentForTest.TwoItemsWithBasePath("a.cs", "b.cs")
         };
         var result = task.FlattenFilePaths(task.InputFilePaths, ' ', true);
         Assert.AreEqual("\"a.cs\" \"b.cs\"", result);
     }
 }
Exemplo n.º 17
0
        public void GetFileVersion_FileHasNoVersionUsingDefaultStrategy_ReturnsZero()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlNoVersion);

                var migrator = new FileMigrator(1, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));
                migrator.AddVersionStrategy(new DefaultVersion(0, 0));

                Assert.AreEqual(0, migrator.GetFileVersion(e.TestFilePath));
            }
        }
Exemplo n.º 18
0
        public void TestOpenDocumentPdfOpen()
        {
            using (var e = new EnvironmentForTest())
            {
                var addin = new LibreOfficePdf();

                addin.Launch(null, e.ProjectInfo);
                Assert.IsTrue(File.Exists(e.PdfFile));
                bool succeeded = (new FileInfo(e.PdfFile).Length > 0);
                Assert.IsTrue(succeeded);
                Thread.Sleep(1000);
            }
        }
Exemplo n.º 19
0
        public void Export_LexicalUnitHasVoice_PhoneticMediaFieldIsOutput()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry e1 = environment.Repo.CreateItem();
                e1.LexicalForm[EnvironmentForTest.Red]   = "r";
                e1.LexicalForm[EnvironmentForTest.Voice] = "pretendFileName";

                environment.DoExport();
                var path = string.Format("..{0}audio{0}pretendFileName", Path.DirectorySeparatorChar);
                environment.AssertHasAtLeastOneMatch("lift/entry/pronunciation/media[@href='" + path + "']");
            }
        }
Exemplo n.º 20
0
 public void NonHomographicEntryHasNoHomographNumber()
 {
     using (var environment = new EnvironmentForTest())
     {
         LexEntry e1 = environment.MakeTestLexEntryInHeadwordWritingSystem("two");
         LexEntry e2 = environment.MakeTestLexEntryInHeadwordWritingSystem("flower");
         LexEntry e3 = environment.MakeTestLexEntryInHeadwordWritingSystem("one");
         environment.DoExport();
         environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e1.Id + "' and not(@order)]");
         environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e2.Id + "' and not(@order)]");
         environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e3.Id + "' and not(@order)]");
     }
 }
Exemplo n.º 21
0
 public void LONotInstalledCheckDoesNotThrow()
 {
     using (var e = new EnvironmentForTest())
     {
         var addin = new LibreOfficePdf();
         Assert.DoesNotThrow(
             () => { if (addin.Available)
                     {
                     }
                     ; }
             );
     }
 }
Exemplo n.º 22
0
        public void LexemeForm_DisabledWritingSystems_AreNotOutput()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry entry = environment.Repo.CreateItem();
                entry.LexicalForm.SetAlternative(environment.WritingSystemIds[1], "one");
                environment.Repo.SaveItem(entry);

                environment.DoExport();
                environment.AssertHasAtLeastOneMatch("lift/entry/lexical-unit/form[text='one']");
                environment.AssertNoMatchForXPathWithArgs("lift/entry/lexical-unit/form[text='{0}']", EnvironmentForTest.Red);
            }
        }
Exemplo n.º 23
0
        public void RelationEntry_NotFound_NothingExported()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry entry = environment.Repo.CreateItem();
                entry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Gary");
                entry.AddRelationTarget("brother", "notGonnaFindIt");
                environment.Repo.SaveItem(entry);

                environment.DoExport();
                environment.CheckRelationNotOutput("brother");
            }
        }
Exemplo n.º 24
0
            public string MakePotFile(string input)
            {
                string csharpFilePath = System.IO.Path.Combine(Path, "csharp.cs");

                File.WriteAllText(csharpFilePath, input);

                var pot = new MakePot.MakePot();

                pot.OutputFile  = System.IO.Path.Combine(Path, "output.pot");
                pot.CSharpFiles = EnvironmentForTest.CreateTaskItemsForFilePath(csharpFilePath);
                pot.Execute();

                return(File.ReadAllText(pot.OutputFile));
            }
Exemplo n.º 25
0
        public void ProcessSrcFile_AllMatches_OutputsGoodPo()
        {
            string contents = @"
somevar.Text = 'FirstLocalizableString';

somevar.MyLocalizableFunction(StringCatalog.Get('SecondLocalizableString', 'SecondNotes'));

somevar.MyLocalizableFunction('~ThirdLocalizableString', 'ThirdNotes');

".Replace("'", "\"");

            string expected =
                @"msgid ''
msgstr ''
'Project-Id-Version: \n'
'POT-Creation-Date: .*
'PO-Revision-Date: \n'
'Last-Translator: \n'
'Language-Team: \n'
'Plural-Forms: \n'
'MIME-Version: 1.0\n'
'Content-Type: text/plain; charset=UTF-8\n'
'Content-Transfer-Encoding: 8bit\n'

# Project-Id-Version: 
# Report-Msgid-Bugs-To: 
# POT-Creation-Date: .*
# Content-Type: text/plain; charset=UTF-8


#: .*
msgid 'FirstLocalizableString'
msgstr ''

#: .*
#. SecondNotes
msgid 'SecondLocalizableString'
msgstr ''

#: .*
#. ThirdNotes
msgid 'ThirdLocalizableString'
msgstr ''
".Replace("'", "\"");

            using (var e = new EnvironmentForTest())
            {
                Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected));
            }
        }
Exemplo n.º 26
0
        public void Export_LexicalUnitHasVoice_VoiceNotListed()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry e1 = environment.Repo.CreateItem();
                e1.LexicalForm[EnvironmentForTest.Red]   = "r";
                e1.LexicalForm[EnvironmentForTest.Voice] = "v";
                e1.LexicalForm[EnvironmentForTest.Blue]  = "b";

                environment.DoExport();
                environment.AssertHasAtLeastOneMatchWithArgs("lift/entry/lexical-unit/form[@lang='{0}']", EnvironmentForTest.Blue);                //sanity check
                environment.AssertNoMatchForXPathWithArgs("lift/entry/lexical-unit/form[@lang='{0}']", EnvironmentForTest.Voice);
            }
        }
Exemplo n.º 27
0
        public void GetFileVersion_FileHasNoVersionAndNoDefaultStrategy_Throws()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlNoVersion);

                var migrator = new FileMigrator(1, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));

                Assert.Throws <ApplicationException>(
                    () => migrator.GetFileVersion(e.TestFilePath)
                    );
            }
        }
Exemplo n.º 28
0
        public void Migrate_WithBackupFileInTheWay_DoesntThrow()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);
                var migrator = new FileMigrator(3, e.TestFilePath);
                File.Copy(migrator.SourceFilePath, migrator.BackupFilePath);                 // Place the backup file in the way.
                migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
                migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
                migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

                migrator.Migrate();
            }
        }
Exemplo n.º 29
0
        public void Export_CitationHasVoice_CitationOmitsVoice()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry e1 = environment.Repo.CreateItem();
                e1.CitationForm[EnvironmentForTest.Red]   = "r";
                e1.CitationForm[EnvironmentForTest.Voice] = "v";
                e1.CitationForm[EnvironmentForTest.Blue]  = "b";

                environment.DoExport();
                environment.PrintResult();
                environment.AssertHasAtLeastOneMatchWithArgs("lift/entry/citation/form[@lang='{0}']", EnvironmentForTest.Blue);                //sanity check
                environment.AssertNoMatchForXPathWithArgs("lift/entry/citation/form[@lang='{0}']", EnvironmentForTest.Voice);
            }
        }
Exemplo n.º 30
0
        public void Migrate_MissingMigrationStrategy_ThrowsAndSourceFileSameVersion()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);
                var migrator = new FileMigrator(3, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
                migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));

                Assert.Throws <InvalidOperationException>(migrator.Migrate);

                AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='1']");
                AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah");
            }
        }
Exemplo n.º 31
0
        public void Migrate_UsingXslAndXml_ArrviesAtVersion3()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);
                var migrator = new FileMigrator(3, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
                migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
                migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

                migrator.Migrate();

                AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='3']");
                AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah");
            }
        }
Exemplo n.º 32
0
        public void Migrate_MissingMigrationStrategy_LeavesWipFiles()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);
                var migrator = new FileMigrator(3, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
                migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));

                Assert.Throws <InvalidOperationException>(() => migrator.Migrate());

                var files = Directory.GetFiles(e.Path);
                Assert.That(files, Has.Some.SamePath(e.TestFilePath));
                Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".bak"));
                Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".Migrate_1_2"));
            }
        }
Exemplo n.º 33
0
        public void WritingSystems_AreOutputInPrescribedOrder()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry entry = environment.Repo.CreateItem();
                entry.LexicalForm.SetAlternative(environment.WritingSystemIds[1], "greenForm");
                entry.LexicalForm.SetAlternative(environment.WritingSystemIds[2], "blueForm");
                entry.LexicalForm.SetAlternative(environment.WritingSystemIds[0], "redForm");
                environment.Repo.SaveItem(entry);

                environment.DoExport();
                XmlNodeList forms = environment.GetNodes("lift/entry/lexical-unit/form");

                Assert.AreEqual(environment.WritingSystemIds[0], forms[0].Attributes["lang"].InnerText);
                Assert.AreEqual(environment.WritingSystemIds[1], forms[1].Attributes["lang"].InnerText);
                Assert.AreEqual(environment.WritingSystemIds[2], forms[2].Attributes["lang"].InnerText);
            }
        }
Exemplo n.º 34
0
        // No wip files left behind
        public void Migrate_Succeeds_CleansUpWipFilesAndBackupFiles()
        {
            using (var e = new EnvironmentForTest())
            {
                e.WriteTestFile(EnvironmentForTest.XmlVersion1);
                var migrator = new FileMigrator(3, e.TestFilePath);
                migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
                migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
                migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

                migrator.Migrate();

                var files = Directory.GetFiles(e.Path);

                Assert.That(files.Length, Is.EqualTo(1));
                Assert.That(files, Has.Some.SamePath(e.TestFilePath));
            }
        }
Exemplo n.º 35
0
        public void RelationEntry_Found_HeadWordExported()
        {
            using (var environment = new EnvironmentForTest())
            {
                LexEntry targetEntry = environment.Repo.CreateItem();

                targetEntry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "RickLexeme");
                targetEntry.CitationForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Rick");
                environment.Repo.SaveItem(targetEntry);

                LexEntry entry = environment.Repo.CreateItem();
                entry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Gary");
                environment.Repo.SaveItem(entry);

                entry.AddRelationTarget("brother", targetEntry.Id);

                environment.DoExport();
                environment.CheckRelationOutput(targetEntry, "brother");
            }
        }
Exemplo n.º 36
0
		// No wip files left behind
		public void Migrate_Succeeds_CleansUpWipFilesAndBackupFiles()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);
				var migrator = new FileMigrator(3, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
				migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
				migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

				migrator.Migrate();

				var files = Directory.GetFiles(e.Path);

				Assert.That(files.Length, Is.EqualTo(1));
				Assert.That(files, Has.Some.SamePath(e.TestFilePath));
			}
		}
Exemplo n.º 37
0
		public void ProcessSrcFile_AllMatches_OutputsGoodPo()
		{
			string contents = @"
somevar.Text = 'FirstLocalizableString';

somevar.MyLocalizableFunction(StringCatalog.Get('SecondLocalizableString', 'SecondNotes'));

somevar.MyLocalizableFunction('~ThirdLocalizableString', 'ThirdNotes');

".Replace("'", "\"");

			string expected =
@"msgid ''
msgstr ''
'Project-Id-Version: \n'
'POT-Creation-Date: .*
'PO-Revision-Date: \n'
'Last-Translator: \n'
'Language-Team: \n'
'Plural-Forms: \n'
'MIME-Version: 1.0\n'
'Content-Type: text/plain; charset=UTF-8\n'
'Content-Transfer-Encoding: 8bit\n'

# Project-Id-Version: 
# Report-Msgid-Bugs-To: 
# POT-Creation-Date: .*
# Content-Type: text/plain; charset=UTF-8


#: .*
msgid 'FirstLocalizableString'
msgstr ''

#: .*
#. SecondNotes
msgid 'SecondLocalizableString'
msgstr ''

#: .*
#. ThirdNotes
msgid 'ThirdLocalizableString'
msgstr ''
".Replace("'", "\"");

			using (var e = new EnvironmentForTest())
			{
				Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected));
			}


		}
Exemplo n.º 38
0
		public void Migrate_WithBackupFileInTheWay_DoesntThrow()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);
				var migrator = new FileMigrator(3, e.TestFilePath);
				File.Copy(migrator.SourceFilePath, migrator.BackupFilePath); // Place the backup file in the way.
				migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
				migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
				migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

				migrator.Migrate();
			}
		}
Exemplo n.º 39
0
		public void Migrate_MissingMigrationStrategy_ThrowsAndSourceFileSameVersion()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);
				var migrator = new FileMigrator(3, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
				migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));

				Assert.Throws<InvalidOperationException>(migrator.Migrate);

				AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='1']");
				AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah");
			}
		}
Exemplo n.º 40
0
		public void Migrate_UsingXslAndXml_ArrviesAtVersion3()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);
				var migrator = new FileMigrator(3, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
				migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));
				migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3));

				migrator.Migrate();

				AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='3']");
				AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah");
			}
		}
Exemplo n.º 41
0
		public void ProcessSrcFile_EmptyString_NotPresentInOutput()
		{
			string contents = @"
somevar.Text = '';
".Replace("'", "\"");

			string expected =
@"msgid ''
msgstr ''
'Project-Id-Version: \n'
'POT-Creation-Date: .*
'PO-Revision-Date: \n'
'Last-Translator: \n'
'Language-Team: \n'
'Plural-Forms: \n'
'MIME-Version: 1.0\n'
'Content-Type: text/plain; charset=UTF-8\n'
'Content-Transfer-Encoding: 8bit\n'

# Project-Id-Version: 
# Report-Msgid-Bugs-To: 
# POT-Creation-Date: .*
# Content-Type: text/plain; charset=UTF-8

".Replace("'", "\"");

			using (var e = new EnvironmentForTest())
			{
				Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected));
			}
		}
Exemplo n.º 42
0
		public void GetFileVersion_DataHasVersion_CorrectVersion()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);

				var migrator = new FileMigrator(7, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));

				Assert.AreEqual(1, migrator.GetFileVersion(e.TestFilePath));
			}
		}
Exemplo n.º 43
0
		public void GetFileVersion_FileHasNoVersionAndNoDefaultStrategy_Throws()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlNoVersion);

				var migrator = new FileMigrator(1, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));

				Assert.Throws<ApplicationException>(
					() => migrator.GetFileVersion(e.TestFilePath)
				);
			}
		}
Exemplo n.º 44
0
		public void GetFileVersion_FileHasNoVersionUsingDefaultStrategy_ReturnsZero()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlNoVersion);

				var migrator = new FileMigrator(1, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version"));
				migrator.AddVersionStrategy(new DefaultVersion(0, 0));

				Assert.AreEqual(0, migrator.GetFileVersion(e.TestFilePath));
			}
		}
Exemplo n.º 45
0
		public void Migrate_MissingMigrationStrategy_LeavesWipFiles()
		{
			using (var e = new EnvironmentForTest())
			{
				e.WriteTestFile(EnvironmentForTest.XmlVersion1);
				var migrator = new FileMigrator(3, e.TestFilePath);
				migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version"));
				migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2));

				Assert.Throws<InvalidOperationException>(() => migrator.Migrate());

				var files = Directory.GetFiles(e.Path);
				Assert.That(files, Has.Some.SamePath(e.TestFilePath));
				Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".bak"));
				Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".Migrate_1_2"));
			}
		}