Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 9bb7fbc

Browse files
committed
Merge branch 'spike/zero-impact-2019' into appveyor-build-zero-impact
2 parents bd5c747 + a501411 commit 9bb7fbc

File tree

8 files changed

+109
-62
lines changed

8 files changed

+109
-62
lines changed

.gitignore

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ build/
2626
[Tt]est[Rr]esult*/
2727
[Bb]uild[Ll]og.*
2828

29-
#NUNIT
29+
# NUnit
3030
*.VisualState.xml
3131
TestResult.xml
32+
nunit-*.xml
3233

3334
# Build Results of an ATL Project
3435
[Dd]ebugPS/
@@ -238,8 +239,14 @@ coverage.xml
238239
#Msbuild binary log output
239240
output.binlog
240241

242+
# KDiff3
243+
*_BACKUP_*
244+
*_BASE_*
245+
*_LOCAL_*
246+
*_REMOTE_*
247+
*.orig
248+
241249
AkavacheSqliteLinkerOverride.cs
242250
NuGetBuild
243251
WiX.Toolset.DummyFile.txt
244-
nunit-*.xml
245252
GitHubVS.sln.DotSettings

src/GitHub.Resources/Resources.Designer.cs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/GitHub.Resources/Resources.resx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ https://git-scm.com/download/win</value>
499499
<value>Private Repository</value>
500500
</data>
501501
<data name="localPathText" xml:space="preserve">
502-
<value>Local path</value>
502+
<value>Local path:</value>
503503
</data>
504504
<data name="licenseListText" xml:space="preserve">
505505
<value>License</value>
@@ -878,4 +878,4 @@ https://git-scm.com/download/win</value>
878878
<data name="RepositorySelectContributedRepositories" xml:space="preserve">
879879
<value>Contributed to repositories</value>
880880
</data>
881-
</root>
881+
</root>

src/GitHub.VisualStudio.UI/Views/Dialog/Clone/RepositoryCloneView.xaml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
1010
Background="{DynamicResource {x:Static vs:EnvironmentColors.ToolWindowBackgroundBrushKey}}"
1111
Foreground="{DynamicResource {x:Static vs:EnvironmentColors.ToolWindowTextBrushKey}}"
12+
Margin="12,12"
1213
mc:Ignorable="d" d:DesignHeight="414" d:DesignWidth="440">
1314
<d:DesignData.DataContext>
1415
<ghfvs:RepositoryCloneViewModelDesigner/>
@@ -19,35 +20,36 @@
1920
</Control.Resources>
2021

2122
<DockPanel>
22-
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center">
23+
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Margin="0,18,0,0">
2324
<Button
24-
Margin="12"
2525
HorizontalAlignment="Center"
2626
IsDefault="True"
2727
Command="{Binding Clone}"
2828
Content="Clone"
29-
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CloneRepositoryButton}"/>
29+
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CloneRepositoryButton}"
30+
KeyboardNavigation.TabIndex="5" />
3031

3132
<Button
32-
Margin="12"
33+
Margin="6,0,0,0"
3334
HorizontalAlignment="Center"
3435
IsDefault="True"
3536
Command="{Binding Open}"
3637
Content="Open"
37-
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.OpenRepositoryButton}"/>
38+
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.OpenRepositoryButton}"
39+
KeyboardNavigation.TabIndex="6"/>
3840
</StackPanel>
3941

40-
<DockPanel DockPanel.Dock="Bottom"
41-
Margin="16">
42-
<Label DockPanel.Dock="Left" Content="{x:Static ghfvs:Resources.localPathText}"/>
42+
<DockPanel DockPanel.Dock="Bottom" Margin="0,9,0,0">
43+
<Label DockPanel.Dock="Left" Content="{x:Static ghfvs:Resources.localPathText}" />
4344
<Button DockPanel.Dock="Right"
4445
Command="{Binding Browse}"
45-
Style="{DynamicResource GitHubLinkButton}"
46-
VerticalContentAlignment="Center">
47-
Browse
46+
VerticalContentAlignment="Center"
47+
KeyboardNavigation.TabIndex="4">
48+
Browse...
4849
</Button>
49-
<TextBox Text="{Binding Path, UpdateSourceTrigger=PropertyChanged}"
50-
VerticalContentAlignment="Center" />
50+
<TextBox Text="{Binding Path, UpdateSourceTrigger=PropertyChanged}" Margin="6,0"
51+
VerticalContentAlignment="Center"
52+
KeyboardNavigation.TabIndex="3" />
5153
</DockPanel>
5254

5355
<uic:InfoPanel Message="{Binding PathWarning}"

src/GitHub.VisualStudio.UI/Views/Dialog/Clone/SelectPageView.xaml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,20 @@
1414
</Control.Resources>
1515

1616
<DockPanel>
17-
<ghfvs:PromptTextBox DockPanel.Dock="Top"
18-
Margin="0,4"
19-
PromptText="Search or enter a URL"
20-
Text="{Binding Filter, UpdateSourceTrigger=PropertyChanged, Delay=300}"/>
17+
<ghfvs:PromptTextBox Name="SearchTextBox"
18+
DockPanel.Dock="Top"
19+
Margin="0,9"
20+
PromptText="Search or enter a URL"
21+
Text="{Binding Filter, UpdateSourceTrigger=PropertyChanged, Delay=300}"
22+
KeyboardNavigation.TabIndex="1" />
2123

2224
<Grid>
2325
<ListView BorderThickness="0"
2426
ItemsSource="{Binding ItemsView}"
2527
SelectedItem="{Binding SelectedItem}"
2628
VirtualizingPanel.IsVirtualizing="True"
27-
VirtualizingPanel.IsVirtualizingWhenGrouping="True">
29+
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
30+
KeyboardNavigation.TabIndex="2">
2831
<ListView.GroupStyle>
2932
<GroupStyle>
3033
<GroupStyle.HeaderTemplate>

src/GitHub.VisualStudio.UI/Views/Dialog/Clone/SelectPageView.xaml.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using System.ComponentModel.Composition;
1+
using System;
2+
using System.ComponentModel.Composition;
23
using System.Windows.Controls;
34
using System.Windows.Input;
5+
using System.Windows.Threading;
46
using GitHub.Exports;
57
using GitHub.ViewModels.Dialog.Clone;
68

@@ -13,6 +15,16 @@ public partial class SelectPageView : UserControl
1315
public SelectPageView()
1416
{
1517
InitializeComponent();
18+
19+
// See Douglas Stockwell's suggestion:
20+
// https://social.msdn.microsoft.com/Forums/vstudio/en-US/30ed27ce-f7b7-48ae-8adc-0400b9b9ec78
21+
IsVisibleChanged += (sender, e) =>
22+
{
23+
if (IsVisible)
24+
{
25+
Dispatcher.BeginInvoke(DispatcherPriority.Input, (Action)(() => SearchTextBox.Focus()));
26+
}
27+
};
1628
}
1729

1830
protected override void OnPreviewMouseDown(MouseButtonEventArgs e)

test/GitHub.InlineReviews.UnitTests/Models/DiffUtilitiesTests.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,45 @@ public void InvalidDiffLineChangeChar(string line, string expectMessage)
237237

238238
Assert.That(expectMessage, Is.EqualTo(e.Message));
239239
}
240+
241+
[Test]
242+
public void ShouldParsePr960()
243+
{
244+
var result = DiffUtilities.ParseFragment(Properties.Resources.pr_960_diff).ToList();
245+
246+
Assert.That(4, Is.EqualTo(result.Count));
247+
248+
Assert.That(11, Is.EqualTo(result[0].OldLineNumber));
249+
Assert.That(11, Is.EqualTo(result[0].NewLineNumber));
250+
Assert.That(24, Is.EqualTo(result[0].Lines.Count));
251+
252+
Assert.That(61, Is.EqualTo(result[1].OldLineNumber));
253+
Assert.That(61, Is.EqualTo(result[1].NewLineNumber));
254+
Assert.That(21, Is.EqualTo(result[1].Lines.Count));
255+
256+
Assert.That(244, Is.EqualTo(result[2].OldLineNumber));
257+
Assert.That(247, Is.EqualTo(result[2].NewLineNumber));
258+
Assert.That(15, Is.EqualTo(result[2].Lines.Count));
259+
260+
Assert.That(268, Is.EqualTo(result[3].OldLineNumber));
261+
Assert.That(264, Is.EqualTo(result[3].NewLineNumber));
262+
Assert.That(15, Is.EqualTo(result[3].Lines.Count));
263+
264+
// - public class UsageTracker : IUsageTracker
265+
Assert.That(17, Is.EqualTo(result[0].Lines[7].OldLineNumber));
266+
Assert.That(-1, Is.EqualTo(result[0].Lines[7].NewLineNumber));
267+
Assert.That(8, Is.EqualTo(result[0].Lines[7].DiffLineNumber));
268+
269+
// + public sealed class UsageTracker : IUsageTracker, IDisposable
270+
Assert.That(-1, Is.EqualTo(result[0].Lines[8].OldLineNumber));
271+
Assert.That(18, Is.EqualTo(result[0].Lines[8].NewLineNumber));
272+
Assert.That(9, Is.EqualTo(result[0].Lines[8].DiffLineNumber));
273+
274+
// IConnectionManager connectionManager;
275+
Assert.That(26, Is.EqualTo(result[0].Lines[17].OldLineNumber));
276+
Assert.That(25, Is.EqualTo(result[0].Lines[17].NewLineNumber));
277+
Assert.That(18, Is.EqualTo(result[0].Lines[17].DiffLineNumber));
278+
}
240279
}
241280

242281
public class TheMatchMethod

test/GitHub.InlineReviews.UnitTests/Services/DiffServiceTests.cs

Lines changed: 21 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,41 @@
1-
using System;
2-
using System.IO;
3-
using System.Linq;
1+
using System.Threading.Tasks;
42
using GitHub.InlineReviews.Services;
5-
using GitHub.InlineReviews.UnitTests.Properties;
63
using GitHub.Services;
7-
using GitHub.Models;
84
using NSubstitute;
5+
using NSubstitute.ReturnsExtensions;
96
using NUnit.Framework;
107

118
namespace GitHub.InlineReviews.UnitTests.Services
129
{
1310
public class DiffServiceTests
1411
{
15-
public class TheParseFragmentMethod
12+
public class TheDiffMethod
1613
{
1714
[Test]
18-
public void ShouldParsePr960()
15+
public async Task DiffReturnsEmptyList()
1916
{
20-
var target = new DiffService(Substitute.For<IGitService>());
21-
var result = DiffUtilities.ParseFragment(Properties.Resources.pr_960_diff).ToList();
17+
var gitService = Substitute.For<IGitService>();
18+
gitService.Compare(null, null, null, null).ReturnsNull();
19+
var target = new DiffService(gitService);
2220

23-
Assert.That(4, Is.EqualTo(result.Count));
21+
var result = await target.Diff(null, null, null, null);
2422

25-
Assert.That(11, Is.EqualTo(result[0].OldLineNumber));
26-
Assert.That(11, Is.EqualTo(result[0].NewLineNumber));
27-
Assert.That(24, Is.EqualTo(result[0].Lines.Count));
28-
29-
Assert.That(61, Is.EqualTo(result[1].OldLineNumber));
30-
Assert.That(61, Is.EqualTo(result[1].NewLineNumber));
31-
Assert.That(21, Is.EqualTo(result[1].Lines.Count));
32-
33-
Assert.That(244, Is.EqualTo(result[2].OldLineNumber));
34-
Assert.That(247, Is.EqualTo(result[2].NewLineNumber));
35-
Assert.That(15, Is.EqualTo(result[2].Lines.Count));
36-
37-
Assert.That(268, Is.EqualTo(result[3].OldLineNumber));
38-
Assert.That(264, Is.EqualTo(result[3].NewLineNumber));
39-
Assert.That(15, Is.EqualTo(result[3].Lines.Count));
23+
Assert.That(result, Is.Empty);
24+
}
25+
}
4026

41-
// - public class UsageTracker : IUsageTracker
42-
Assert.That(17, Is.EqualTo(result[0].Lines[7].OldLineNumber));
43-
Assert.That(-1, Is.EqualTo(result[0].Lines[7].NewLineNumber));
44-
Assert.That(8, Is.EqualTo(result[0].Lines[7].DiffLineNumber));
27+
public class TheDiffOverloadMethod
28+
{
29+
[Test]
30+
public async Task DiffReturnsEmptyList()
31+
{
32+
var gitService = Substitute.For<IGitService>();
33+
gitService.CompareWith(null, null, null, null, null).ReturnsNull();
34+
var target = new DiffService(gitService);
4535

46-
// + public sealed class UsageTracker : IUsageTracker, IDisposable
47-
Assert.That(-1, Is.EqualTo(result[0].Lines[8].OldLineNumber));
48-
Assert.That(18, Is.EqualTo(result[0].Lines[8].NewLineNumber));
49-
Assert.That(9, Is.EqualTo(result[0].Lines[8].DiffLineNumber));
36+
var result = await target.Diff(null, null, null, null, null);
5037

51-
// IConnectionManager connectionManager;
52-
Assert.That(26, Is.EqualTo(result[0].Lines[17].OldLineNumber));
53-
Assert.That(25, Is.EqualTo(result[0].Lines[17].NewLineNumber));
54-
Assert.That(18, Is.EqualTo(result[0].Lines[17].DiffLineNumber));
38+
Assert.That(result, Is.Empty);
5539
}
5640
}
5741
}

0 commit comments

Comments
 (0)