|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Roslyn.Test.Utilities;
namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.StringCopyPaste;
public class PasteKnownSourceIntoVerbatimStringTests : StringCopyPasteCommandHandlerKnownSourceTests
{
[WpfFact]
public void TestPasteSimpleNormalLiteralContent()
{
TestCopyPaste(
"""var v = "{|Copy:goo|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteSimpleSubstringNormalLiteralContent()
{
TestCopyPaste(
"""var v = "g{|Copy:o|}o";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"o[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPastePartiallySelectedEscapeNormalLiteralContent()
{
TestCopyPaste(
"""var v = "\{|Copy:n|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"n[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteFullySelectedEscapeNormalLiteralContent()
{
TestCopyPaste(
"""var v = "{|Copy:\r\n|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"
[||]";
""",
"""
var dest =
@"\r\n[||]";
""");
}
[WpfFact]
public void TestPastePartiallySelectedQuoteNormalLiteralContent()
{
TestCopyPaste(
"""var v = "\{|Copy:"|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""[||]";
"""",
"""
var dest =
@""[||]";
""");
}
[WpfFact]
public void TestPasteFullySelectedQuoteNormalLiteralContent()
{
TestCopyPaste(
"""var v = "{|Copy:\"|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""[||]";
"""",
"""
var dest =
@"\"[||]";
""");
}
[WpfFact]
public void TestPasteSimpleVerbatimLiteralContent()
{
TestCopyPaste(
"""var v = @"{|Copy:goo|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteSimpleSubstringVerbatimLiteralContent()
{
TestCopyPaste(
"""var v = @"g{|Copy:o|}o";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"o[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteSelectedVerbatimNewLineLiteralContent()
{
TestCopyPaste(
"""
var v = @"{|Copy:
|}";
""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"
[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteFullySelectedEscapeVerbatimLiteralContent()
{
TestCopyPaste(
"""var v = @"{|Copy:""|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""[||]";
"""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteSimpleRawSingleLineLiteralContent()
{
TestCopyPaste(
""""var v = """{|Copy:goo|}""";"""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteQuotesRawSingleLineLiteralContent()
{
TestCopyPaste(
""""var v = """{|Copy: "" |}""";"""",
"""
var dest =
@"[||]";
""",
"""""
var dest =
@" """" [||]";
""""",
"""
var dest =
@" "" [||]";
""");
}
[WpfFact]
public void TestPasteSimpleRawMultiLineLiteralContent1()
{
TestCopyPaste(
""""
var v = """
{|Copy:goo|}
""";
"""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteSimpleRawMultiLineLiteralContent2()
{
TestCopyPaste(
""""
var v = """
{|Copy:goo
bar|}
""";
"""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo
bar[||]";
""",
"""
var dest =
@"goo
bar[||]";
""");
}
[WpfFact]
public void TestPasteSimpleRawMultiLineLiteralContent3()
{
TestCopyPaste(
""""
var v = """
{|Copy: goo
bar|}
""";
"""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"goo
bar[||]";
""",
"""
var dest =
@" goo
bar[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationFromInterpolatedStringLiteralContent()
{
TestCopyPaste(
"""var v = $"{|Copy:{0}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0}[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithFormatClauseFromInterpolatedStringLiteralContent1()
{
TestCopyPaste(
"""var v = $"{|Copy:{0:X}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0:X}[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithFormatClauseFromInterpolatedStringLiteralContent2()
{
TestCopyPaste(
"""var v = $"{|Copy:{0:\"X\"}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0:""X""}[||]";
""",
"""
var dest =
@"{0:\"X\"}[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromInterpolatedStringLiteralContent1()
{
TestCopyPaste(
"""var v = $"{|Copy:{"goo"}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{""goo""}[||]";
""",
"""
var dest =
@"{"goo"}[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromInterpolatedStringLiteralContent2()
{
TestCopyPaste(
"""var v = $"{|Copy:X{"goo"}Y|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"X{""goo""}Y[||]";
""",
"""
var dest =
@"X{"goo"}Y[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromInterpolatedStringLiteralContent3()
{
TestCopyPaste(
"""var v = $"{|Copy:\"X{"goo"}Y\"|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""X{""goo""}Y""[||]";
"""",
"""
var dest =
@"\"X{"goo"}Y\"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromInterpolatedStringLiteralContent4()
{
TestCopyPaste(
"""var v = $"{|Copy:\"X{@"goo"}Y\"|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""X{@""goo""}Y""[||]";
"""",
"""
var dest =
@"\"X{@"goo"}Y\"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationFromVerbatimInterpolatedStringLiteralContent()
{
TestCopyPaste(
"""var v = $@"{|Copy:{0}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0}[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithFormatClauseFromVerbatimInterpolatedStringLiteralContent1()
{
TestCopyPaste(
"""var v = $@"{|Copy:{0:X}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0:X}[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithFormatClauseFromVerbatimInterpolatedStringLiteralContent2()
{
TestCopyPaste(
"""var v = $@"{|Copy:{0:""X""}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{0:""X""}[||]";
""",
"""
var dest =
@"[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromVerbatimInterpolatedStringLiteralContent1()
{
TestCopyPaste(
"""var v = $@"{|Copy:{"goo"}|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"{""goo""}[||]";
""",
"""
var dest =
@"{"goo"}[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromVerbatimInterpolatedStringLiteralContent2()
{
TestCopyPaste(
"""var v = $@"{|Copy:X{"goo"}Y|}";""",
"""
var dest =
@"[||]";
""",
"""
var dest =
@"X{""goo""}Y[||]";
""",
"""
var dest =
@"X{"goo"}Y[||]";
""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromVerbatimInterpolatedStringLiteralContent3()
{
TestCopyPaste(
"""var v = $@"{|Copy:""X{"goo"}Y""|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""X{""goo""}Y""[||]";
"""",
""""
var dest =
@"""X{"goo"}Y""[||]";
"""");
}
[WpfFact]
public void TestPasteInterpolationWithStringFromVerbatimInterpolatedStringLiteralContent4()
{
TestCopyPaste(
"""var v = $@"{|Copy:""X{@"goo"}Y""|}";""",
"""
var dest =
@"[||]";
""",
""""
var dest =
@"""X{@""goo""}Y""[||]";
"""",
""""
var dest =
@"""X{@"goo"}Y""[||]";
"""");
}
}
|