Пример #1
0
 public void OnEnable(MemberItem member)
 {
     if (m_IsDummy)
     {
         Member     = member;
         DummyModel = member.LoadDoc(TextOrig, Language, false, false);
         if (Language == LanguageUtil.ELanguage.English)
         {
             DummyModel.EnforcePunctuation();
         }
         DummyModel.SanitizeForEditing();
     }
     else
     {
         Member = member;
         member.LoadDoc(Language);
         member.LoadDoc(TextCurrent, Language, false);
         if (Language == LanguageUtil.ELanguage.English)
         {
             Model.EnforcePunctuation();
         }
         Model.SanitizeForEditing();
         if (Diff == null)
         {
             Diff = new StringDiff();
         }
         Diff.Compare(TextOrig, TextCurrent);
     }
 }
Пример #2
0
        public void Format_SimpleNested_SpacePreserved()
        {
            // Arrange
            var source =
                @"<Element1 xml:space=""preserve"">       


          <Element2 A1=""Value1"" A2=""Value2"" />            


</Element1>";
            var expected =
                @"<Element1 xml:space=""preserve"">       


          <Element2
        A1=""Value1""
        A2=""Value2"" />            


</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #3
0
        public void Format_SingleLineTextWithNonInlineAtributeNested_TextPreserved()
        {
            // Arrange
            var source =
                @"<Element1>
    <Element2 Attr1=""Foo1"" Attr2=""Foo1"">

Some text


    </Element2>
</Element1>";
            var expected =
                @"<Element1>
    <Element2
        Attr1=""Foo1""
        Attr2=""Foo1"">
        Some text
    </Element2>
</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #4
0
        public void Format_SingleLineTextWithInlineAtributeAndCommentNested_FormatsWell()
        {
            // Arrange
            var source =
                @"<Element1>
    <Element2 Attr=""Foo"">

Some text<!-- Wierd Comment -->


    </Element2>
</Element1>";
            var expected =
                @"<Element1>
    <Element2 Attr=""Foo"">
        Some text
        <!-- Wierd Comment -->

    </Element2>
</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #5
0
        public void Format_NestedDefault_NormalFormattingResumed()
        {
            // Arrange
            var source =
                @"<Element1 xml:space=""preserve"">       

                <Element2 xml:space=""default"">   Foo bar   </Element2>    

    Moo X

BAR

</Element1>";
            var expected =
                @"<Element1 xml:space=""preserve"">       

                <Element2 xml:space=""default"">Foo bar</Element2>    

    Moo X

BAR

</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #6
0
        public void Format_MultiLineCommentAtStart_Written()
        {
            // Arrange
            var source =
                @"

<!--Start Comment
   Start Comment1
 Start Comment
        Start Comment-->
<Element1 />";
            var expected =
                @"<!--
    Start Comment
    Start Comment1
    Start Comment
    Start Comment
-->
<Element1 />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #7
0
        public void Format_MultilineCommentBetweenElements_CommentPreserved()
        {
            // Arrange
            var source =
                @"<Element1>


    <!--         A multiline comment 
A multiline comment 
    A multiline comment 


-->


</Element1>";
            var expected =
                @"<Element1>

    <!--
        A multiline comment
        A multiline comment
        A multiline comment
    -->

</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #8
0
        public void Format_SignificantWhiteSpaceContainsSingleLineComment_SpacePreserved()
        {
            // Arrange
            var source =
                @"<Element1 xml:space=""preserve"">       

          
                        <!--  
    
  I'm a lovely comment   
        -->       


</Element1>";
            var expected =
                @"<Element1 xml:space=""preserve"">       

          
                        <!-- I'm a lovely comment -->       


</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #9
0
        public void Format_AttributesWithOrderInstructionIncludingPredefined_OrdersAsPerInstruction()
        {
            // Arrange
            var source =
                @"<!-- xamlr:order Z2, X1, Grid.Row, x:Name, Y3 -->
<Element1
    xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
    xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""
    x:Name=""n""
    Grid.Row=""g""
    A1=""a""
    Z2=""z""
    Y3=""y""
    X1=""x"" />";

            var expected =
                @"<!-- xamlr:order Z2, X1, Grid.Row, x:Name, Y3 -->
<Element1
    Z2=""z""
    X1=""x""
    Grid.Row=""g""
    x:Name=""n""
    Y3=""y""
    xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
    xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""
    A1=""a"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #10
0
        public void Format_Text_SpacePreserved()
        {
            // Arrange
            var source =
                @"<Element1 xml:space=""preserve"">       

Moo foo
        Mba 
            SDFSD slb 
 sdlf
   

</Element1>";
            var expected =
                @"<Element1 xml:space=""preserve"">       

Moo foo
        Mba 
            SDFSD slb 
 sdlf
   

</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #11
0
        public void Format_WhiteSpaceBetweenElements_OneBlankPreserved()
        {
            // Arrange
            var source =
                @"<Element1>


    <Element2 />



</Element1>";
            var expected =
                @"<Element1>

    <Element2 />

</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #12
0
        public void Format_ComplexMarkupExtension1_Formats()
        {
            // Arrange
            var source =
                @"<Element1 
Markup=""{Binding 
Path=Foo, 
ElementName={Binding Path=DataContext.Girrafe, Converter={StaticResource GirrafeConverter}},
Source={StaticResource Items}}"" />";
            var expected =
                @"<Element1
    Markup=""{Binding
        Path=Foo,
        ElementName={Binding
            Path=DataContext.Girrafe,
            Converter={StaticResource GirrafeConverter}},
        Source={StaticResource Items}}"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #13
0
        public void Format_MultilineText_TextPreserved()
        {
            // Arrange
            var source =
                @"<Element1>


    Some text

                Some text


            Some    text

</Element1>";
            var expected =
                @"<Element1>
    Some text
    Some text
    Some    text
</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #14
0
        public void Format_SingleAttribute_SpacesInAttributesAreNotTrimmed()
        {
            // Arrange
            var source   = @"<Element1 Attribute=""  abc  "" />";
            var expected = @"<Element1 Attribute=""  abc  "" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #15
0
        public void Format_SingleUnnestedNonEmptyMarkupExtension_FormatsOnOneLine()
        {
            // Arrange
            var source   = @"<Element1 Markup=""{Binding Path='Foo'}"" />";
            var expected = @"<Element1 Markup=""{Binding Path='Foo'}"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #16
0
        public void Format_IntegrationTest1_FormatsAsExpected()
        {
            // Arrange
            var source   = "IntegrationTest1.xaml".GetSource();
            var expected = "IntegrationTest1_Formatted.xaml".GetSource();

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #17
0
        public void Format_OneEmptyElement_Formats()
        {
            // Arrange
            var source   = @"<Element1 />";
            var expected = @"<Element1 />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #18
0
        public void Format_HasXmlPreamble_PreservesPreamble()
        {
            // Arrange
            var source   = @"<?xml version=""1.0"" encoding=""utf-8""?><Element1 />";
            var expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Element1 />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #19
0
        public void Format_ProcessingInstructionAtStart_Formats()
        {
            // Arrange
            var source   = @"<?Mapping ClrNamespace=""Xamlr.Core"" XmlNamespace=""Xamlr""?><Element1 />";
            var expected =
                @"<?Mapping ClrNamespace=""Xamlr.Core"" XmlNamespace=""Xamlr""?>
<Element1 />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #20
0
        public void Format_WhiteSpaceAtEnd_Trimmed()
        {
            // Arrange
            var source   = @"<Element1 />

";
            var expected = @"<Element1 />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #21
0
        public void Format_SingleAttributeInNonRoot_FormatsOnOneLine()
        {
            // Arrange
            var source   = @"<Element1><Element2 Attribute=""abc"" /></Element1>";
            var expected =
                @"<Element1>
    <Element2 Attribute=""abc"" />
</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #22
0
        public void Format_TwoAttributes_FormatsOnTwoLines()
        {
            // Arrange
            var source   = @"<Element1 Attribute1=""abc"" Attribute2=""def"" />";
            var expected =
                @"<Element1
    Attribute1=""abc""
    Attribute2=""def"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #23
0
        public void Format_DeepNestedDefault_NormalFormattingResumed()
        {
            // Arrange
            var source =
                @"<Element1 xml:space=""preserve"" Attribute1=""Moo"" Attribute2=""Foo"">       

                <Element2 xml:space=""default"" Attribute1=""Zoo"" Attribute2=""{Binding Path=Height, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=views:MainView}}"">   <Element3><Element4>       Foo bar     </Element4></Element3>  </Element2>    

    Moo X

BAR

</Element1>";
            var expected =
                @"<Element1
    xml:space=""preserve""
    Attribute1=""Moo""
    Attribute2=""Foo"">       

                <Element2
        xml:space=""default""
        Attribute1=""Zoo""
        Attribute2=""{Binding
            Path=Height,
            RelativeSource={RelativeSource
                Mode=FindAncestor,
                AncestorType=views:MainView}}"">
        <Element3>
            <Element4>Foo bar</Element4>
        </Element3>
    </Element2>    

    Moo X

BAR

</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #24
0
        public void Format_SingleNestedMarkupExtension_FormatsOnMultipleLines()
        {
            // Arrange
            var source   = @"<Element1 Markup=""{Binding Source={StaticResource Items}}"" />";
            var expected =
                @"<Element1
    Markup=""{Binding
        Source={StaticResource Items}}"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #25
0
        public void Format_AttributesWithOrderInstruction_OrdersAsPerInstruction()
        {
            // Arrange
            var source   = @"<!-- xamlr:order Attribute2, Attribute1 --><Element1 Attribute1=""abc"" Attribute2=""def"" />";
            var expected =
                @"<!-- xamlr:order Attribute2, Attribute1 -->
<Element1
    Attribute2=""def""
    Attribute1=""abc"" />";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #26
0
        public void Format_Issue1334EscapedCharactersAreCorruptInElementBody_CharactersNoLongerCorrupt()
        {
            // Arrange
            var source =
                @"<TextBlock>
    <Run>&lt;</Run>
</TextBlock>";
            var expected =
                @"<TextBlock>
    <Run>&lt;</Run>
</TextBlock>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #27
0
        public void Format_MultipleEmptyElements_Formats()
        {
            // Arrange
            var source   = @"<Element1><Element2 /><Element3 /><Element4><Element5></Element5></Element4></Element1>";
            var expected =
                @"<Element1>
    <Element2 />
    <Element3 />
    <Element4>
        <Element5 />
    </Element4>
</Element1>";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }
Пример #28
0
        public void Format_SingleLineCommentAtEnd_Written()
        {
            // Arrange
            var source =
                @"<Element1 />

<!-- End Comment -->

";
            var expected =
                @"<Element1 />

<!-- End Comment -->";

            // Act
            var actual = source.Format();

            // Assert
            var result = StringDiff.Compare(expected, actual);

            Assert.IsTrue(result.AreEqual, result.Details);
        }