예제 #1
0
        public void CreateNonExistentWritingSystemsFoundInConfig_FieldsXmlContainsRfcTagThatAfterBeingMadeConformMatchesExistingLdml_LdmlFilesAreLeftUnchanged()
        {
            using (var environment = new TestEnvironment(
                       ConfigFileContentForTests.WrapContentInConfigurationTags(
                           ConfigFileContentForTests.GetConfigFileSnippetContainingFieldWithWritingSystems("en", "audio"))))
            {
                var wsRepo = environment.WritingSystems;

                var enWs = WritingSystemDefinition.Parse("en");
                enWs.Abbreviation = "Dont change me!";
                wsRepo.Set(enWs);
                wsRepo.Save();

                environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='en']");
                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-Zxxx-x-audio']");

                var pathToLdml = Path.Combine(environment.WritingSystemsPath, "en.ldml");
                AssertThatXmlIn.File(pathToLdml).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='en']");
                AssertThatXmlIn.File(pathToLdml).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(pathToLdml).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(pathToLdml).HasNoMatchForXpath("/ldml/identity/variant");
                AssertThatXmlIn.File(pathToLdml).
                HasAtLeastOneMatchForXpath("/ldml/special/palaso:abbreviation[@value='Dont change me!']", environment.NamespaceManager);
            }
        }
예제 #2
0
        public void CreateNonExistentWritingSystemsFoundInConfig_FieldsXmlContainsNonConformantRfcTagWithDuplicatesAndAlreadyhasDuplicateMarker_UpdatesRfcTagInFieldsXmlOfConfigFile()
        {
            using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(
                                                             ConfigFileContentForTests.GetConfigFileSnippetContainingFieldWithWritingSystems("qaa-audio-dupl1", "qaa-Zxxx-x-audio-dupl1"))))
            {
                environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-Zxxx-x-audio-dupl1']");
                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-Zxxx-x-audio-dupl1-dupl0']");


                string writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-Zxxx-x-audio-dupl1-dupl0" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/script[@type='Zxxx']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-audio-dupl1-dupl0']");

                writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-Zxxx-x-audio-dupl1" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/script[@type='Zxxx']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-audio-dupl1']");
            }
        }
예제 #3
0
        public void CreateNonExistentWritingSystemsFoundInConfig_WS34066RegressionTest_UpdatesRfcTagInFieldsXmlOfConfigFile()
        {
            using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(
                                                             ConfigFileContentForTests.GetConfigFileSnippetContainingFieldWithWritingSystems("qaa-x-aaa", "aaa"))))
            {
                environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);

                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-x-aaa']");
                AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
                    "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='aaa']");


                string writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-x-aaa" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-aaa']");

                writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "aaa" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='aaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/variant");
            }
        }
예제 #4
0
        public void CreateNonExistentWritingSystemsFoundInConfig_AddinsXmlContainsNonConformantRfcTag_CreatesConformingWritingSystem()
        {
            using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(ConfigFileContentForTests.GetConfigFileContainingSfmExporterAddinWithWritingSystems("de", "bogusws1", "audio", "Zxxx"))))
            {
                environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);


                string writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-x-bogusws1" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-bogusws1']");

                writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-Zxxx-x-audio" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/script[@type='Zxxx']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-audio']");

                writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "de" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='de']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/variant");

                writingSystemFilePath = Path.Combine(environment.WritingSystemsPath, "qaa-x-Zxxx" + ".ldml");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/language[@type='qaa']");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/script");
                AssertThatXmlIn.File(writingSystemFilePath).HasNoMatchForXpath("/ldml/identity/territory");
                AssertThatXmlIn.File(writingSystemFilePath).HasAtLeastOneMatchForXpath("/ldml/identity/variant[@type='x-Zxxx']");
            }
        }
예제 #5
0
 public void CreateNonExistentWritingSystemsFoundInConfig_FieldContainsNonConformantRfcTag_UpdatesRfcTagInFieldXmlOfConfigFile()
 {
     using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(ConfigFileContentForTests.GetConfigFileSnippetContainingFieldWithWritingSystems("bogusws1", "audio"))))
     {
         environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-x-bogusws1']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/components/viewTemplate/fields/field/writingSystems/id[text()='qaa-Zxxx-x-audio']");
     }
 }
예제 #6
0
 public void CreateNonExistentWritingSystemsFoundInConfig_TasksXmlContainsNonConformantRfcTag_UpdatesRfcTagInTasksXmlOfConfigFile()
 {
     using (var environment = new TestEnvironment(
                ConfigFileContentForTests.WrapContentInConfigurationTags(
                    ConfigFileContentForTests.GetConfigFileSnippetContainingMissingInfoTaskWithWritingSystems("bogusws1", "audio", "de", "Zxxx"))))
     {
         environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/tasks/task/writingSystemsToMatch[text()='qaa-x-bogusws1, qaa-Zxxx-x-audio']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/tasks/task/writingSystemsWhichAreRequired[text()='de, qaa-x-Zxxx']");
     }
 }
예제 #7
0
 public void CreateNonExistentWritingSystemsFoundInConfig_XmlContainsSameWsTwice_SecondInstanceIsNotSeenAsDuplicateWritingSystem()
 {
     using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(
                                                      ConfigFileContentForTests.GetConfigFileContainingSfmExporterAddinWithWritingSystems("qaa-audio", "qaa-audio", "en", "de"))))
     {
         environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/EnglishLanguageWritingSystemId[text()='qaa-Zxxx-x-audio']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/NationalLanguageWritingSystemId[text()='qaa-Zxxx-x-audio']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/RegionalLanguageWritingSystemId[text()='en']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/VernacularLanguageWritingSystemId[text()='de']");
     }
 }
예제 #8
0
 public void CreateNonExistentWritingSystemsFoundInConfig_AddinsXmlContainsNonConformantRfcTag_UpdatesRfcTagInAddinsXmlOfConfigFile()
 {
     using (var environment = new TestEnvironment(ConfigFileContentForTests.WrapContentInConfigurationTags(
                                                      ConfigFileContentForTests.GetConfigFileContainingSfmExporterAddinWithWritingSystems("en", "bogusws1", "audio", "Zxxx"))))
     {
         environment.Creator.CreateWritingSystemsForIdsInFileWhereNecassary(environment.WritingSystems);
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/EnglishLanguageWritingSystemId[text()='en']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/NationalLanguageWritingSystemId[text()='qaa-x-bogusws1']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/RegionalLanguageWritingSystemId[text()='qaa-Zxxx-x-audio']");
         AssertThatXmlIn.File(environment.ConfigFilePath).HasAtLeastOneMatchForXpath(
             "/configuration/addins/addin/SfmTransformSettings/VernacularLanguageWritingSystemId[text()='qaa-x-Zxxx']");
     }
 }