示例#1
0
        public void Remove_should_save_definition_to_lowest_settings()
        {
            _parser = new GitExtLinksParser(_repoLocal);
            var definition = new GitExtLinkDef
            {
                Name          = "test",
                SearchPattern = "pattern"
            };

            _parser.AddLinkDef(definition);

            _parser.SaveToSettings();
            _repoLocal.SettingsCache.Save();
            _repoDistributed.SettingsCache.Save();
            _userRoaming.SettingsCache.Save();

            var settings = new RepoDistSettings(null, new GitExtSettingsCache(_level3));
            var parser   = new GitExtLinksParser(settings);

            parser.EffectiveLinkDefs.Count.Should().Be(2);
            var item = parser.EffectiveLinkDefs.Last();

            item.Name.Should().Be(definition.Name);
            item.SearchPattern.Should().Be(definition.SearchPattern);
        }
示例#2
0
        public void Can_load_1_layers_of_settings()
        {
            _parser = new GitExtLinksParser(_userRoaming);

            var effectiveSettings = _parser.EffectiveLinkDefs;

            effectiveSettings.Count.Should().Be(1);
        }
示例#3
0
        private bool ParseGitHubCommitFormatRevisionLink()
        {
            var  revisionLinks = new GitExtLinksParser(Module.EffectiveSettings);
            bool hasGitHubCommitFormatRevisionLink = revisionLinks.EffectiveLinkDefs.Any(
                r => r.LinkFormats.Any(IsGitHubCommitLinkFormat));

            return(hasGitHubCommitFormatRevisionLink);
        }
示例#4
0
 protected override void  SettingsToPage()
 {
     parser = new GitExtLinksParser(CurrentSettings);
     ReloadCategories();
     if (_NO_TRANSLATE_Categories.Items.Count > 0)
     {
         _NO_TRANSLATE_Categories.SelectedIndex = 0;
     }
     CategoryChanged();
 }
示例#5
0
        public void Can_load_2_layers_of_settings()
        {
            _parser = new GitExtLinksParser(_repoDistributed);

            var effectiveSettings = _parser.EffectiveLinkDefs;

            // 1 comes from the user roaming settings
            // 3 come from the distributed
            effectiveSettings.Count.Should().Be(4);
        }
示例#6
0
        public void Remove_should_remove_definition_from_collection()
        {
            _parser = new GitExtLinksParser(_repoLocal);
            var effectiveSettings = _parser.EffectiveLinkDefs;

            var definition = effectiveSettings[0]; // comes from the local

            _parser.RemoveLinkDef(definition);

            effectiveSettings = _parser.EffectiveLinkDefs;
            // 1 comes from the user roaming settings
            // 3 come from the distributed
            // 0 comes from the local
            effectiveSettings.Count.Should().Be(4);
        }
示例#7
0
        public void ParseLinkWithEmptyRemotePart()
        {
            _linkDef       = GitExtLinksParser.LoadFromXmlString(GetEmptyRemotePartXmlDef()).First();
            _revision.Body = "Merge pull request #3657 from RussKie/tweak_FormRemotes_tooltips";
            IEnumerable <GitExtLink> expectedLinks = new[]
            {
                new GitExtLink()
                {
                    Caption = "Issue 3657",
                    URI     = "https://github.com/gitextensions/gitextensions/issues/3657"
                }
            };

            var actualLinks = _linkDef.Parse(_revision, _remoteManager);

            actualLinks.Should().Equal(expectedLinks);
        }
示例#8
0
        public void Remove_should_add_definition_to_collection()
        {
            _parser = new GitExtLinksParser(_repoLocal);
            var definition = new GitExtLinkDef
            {
                Name          = "test",
                SearchPattern = "pattern"
            };

            _parser.AddLinkDef(definition);

            var effectiveSettings = _parser.EffectiveLinkDefs;

            // 1 comes from the user roaming settings
            // 3 come from the distributed
            // 2 comes from the local
            effectiveSettings.Count.Should().Be(6);
        }
示例#9
0
        private string GetLinksForRevision(GitRevision revision)
        {
            GitExtLinksParser parser = new GitExtLinksParser(Module.EffectiveSettings);
            var links       = parser.Parse(revision).Distinct();
            var linksString = string.Empty;

            foreach (var link in links)
            {
                linksString = linksString.Combine(", ", LinkFactory.CreateLink(link.Caption, link.URI));
            }

            if (linksString.IsNullOrEmpty())
            {
                return(string.Empty);
            }
            else
            {
                return(WebUtility.HtmlEncode(trsLinksRelatedToRevision.Text) + " " + linksString);
            }
        }
示例#10
0
        public void ParseLinkWithEmptyRemotePart()
        {
            GitExtLinkDef linkDef  = GitExtLinksParser.LoadFromXmlString(GetEmptyRemotePartXmlDef()).First();
            GitRevision   revision = new GitRevision(null, "");

            revision.Body = "Merge pull request #3657 from RussKie/tweak_FormRemotes_tooltips";
            IGitRemoteController remoteController = Substitute.For <IGitRemoteController>();

            remoteController.Remotes.Returns(GetDefaultRemotes());
            IEnumerable <GitExtLink> actualLinks   = linkDef.Parse(revision, remoteController);
            IEnumerable <GitExtLink> expectedLinks = new GitExtLink[]
            {
                new GitExtLink()
                {
                    Caption = "Issue 3657",
                    URI     = "https://github.com/gitextensions/gitextensions/issues/3657"
                }
            };

            actualLinks.Should().Equal(expectedLinks);
        }
示例#11
0
 private static GitExtLinkDef GetGithubIssuesLinkDef()
 {
     return(GitExtLinksParser.LoadFromXmlString(GetGithubIssuesXmlDef()).First());
 }