Skip to content

Commit a930da4

Browse files
authored
Merge pull request #46 from browserstack/newtonsoft_json_upgrade
Upgrade Newtonsoft json to 13.0.2 and unit tests fix
2 parents 4e767f2 + b7ddec3 commit a930da4

File tree

4 files changed

+72
-32
lines changed

4 files changed

+72
-32
lines changed

.github/workflows/cd.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: .NET package CD
2+
3+
on: [workflow_dispatch]
4+
5+
defaults:
6+
run:
7+
working-directory: BrowserStackLocal
8+
9+
jobs:
10+
build:
11+
runs-on: windows-latest
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Add msbuild to PATH
16+
uses: microsoft/[email protected]
17+
- name: Build BrowserStackLocal
18+
run: |
19+
msbuild BrowserStackLocal -t:restore -p:Configuration=Release
20+
msbuild BrowserStackLocal -t:build -p:Configuration=Release
21+
- name: Build Test project
22+
run: |
23+
msbuild BrowserStackLocalIntegrationTests -t:restore -p:Configuration=Release
24+
msbuild BrowserStackLocalIntegrationTests -t:build -p:Configuration=Release
25+
- name: Setup .NET Core
26+
uses: actions/setup-dotnet@v1
27+
with:
28+
dotnet-version: 3.1.301
29+
- name: Run Integration Tests
30+
env:
31+
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
32+
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
33+
run: dotnet test BrowserStackLocalIntegrationTests --no-build -p:Configuration=Release
34+
- name: Pack NuGet Package
35+
run: msbuild BrowserStackLocal -t:pack -p:Configuration=Release
36+
- name: Setup nuget
37+
uses: nuget/setup-nuget@v1
38+
with:
39+
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
40+
nuget-version: '5.x'
41+
- name: Create PFX certificate
42+
id: createPfx
43+
shell: pwsh
44+
env:
45+
PFX_CONTENT: ${{ secrets.BASE64_PFX_CONTENT }}
46+
run: |
47+
$pfxPath = Join-Path -Path $env:RUNNER_TEMP -ChildPath "cert.pfx";
48+
$encodedBytes = [System.Convert]::FromBase64String($env:PFX_CONTENT);
49+
Set-Content $pfxPath -Value $encodedBytes -AsByteStream;
50+
Write-Output "::set-output name=PFX_PATH::$pfxPath";
51+
- name: Sign Nuget Package
52+
run: nuget sign .\BrowserStackLocal\bin\Release\*.nupkg -certificatePath "${{ steps.createPfx.outputs.PFX_PATH }}" -certificatePassword "${{secrets.CERT_PASSWORD}}" -Timestamper "http://timestamp.comodoca.com"
53+
- name: Save artifact
54+
uses: actions/upload-artifact@v2
55+
with:
56+
name: BrowserStackLocal.nupkg
57+
path: .\BrowserStackLocal\BrowserStackLocal\bin\Release\*.nupkg
58+
- name: Push package to Nuget Repository
59+
run: nuget push **\*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}}

.github/workflows/ci.yml

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,8 @@ jobs:
3333
run: dotnet test BrowserStackLocalIntegrationTests --no-build -p:Configuration=Release
3434
- name: Pack NuGet Package
3535
run: msbuild BrowserStackLocal -t:pack -p:Configuration=Release
36-
- name: Setup nuget
37-
uses: nuget/setup-nuget@v1
38-
with:
39-
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
40-
nuget-version: '5.x'
41-
- name: Create PFX certificate
42-
id: createPfx
43-
shell: pwsh
44-
env:
45-
PFX_CONTENT: ${{ secrets.BASE64_PFX_CONTENT }}
46-
run: |
47-
$pfxPath = Join-Path -Path $env:RUNNER_TEMP -ChildPath "cert.pfx";
48-
$encodedBytes = [System.Convert]::FromBase64String($env:PFX_CONTENT);
49-
Set-Content $pfxPath -Value $encodedBytes -AsByteStream;
50-
Write-Output "::set-output name=PFX_PATH::$pfxPath";
51-
- name: Sign Nuget Package
52-
run: nuget sign .\BrowserStackLocal\bin\Release\*.nupkg -certificatePath "${{ steps.createPfx.outputs.PFX_PATH }}" -certificatePassword "${{secrets.CERT_PASSWORD}}" -Timestamper "http://timestamp.comodoca.com"
5336
- name: Save artifact
5437
uses: actions/upload-artifact@v2
5538
with:
5639
name: BrowserStackLocal.nupkg
5740
path: .\BrowserStackLocal\BrowserStackLocal\bin\Release\*.nupkg
58-
- name: Push package to Nuget Repository
59-
run: nuget push **\*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}}

BrowserStackLocal/BrowserStackLocal Unit Tests/LocalTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void TestWorksWithAccessKeyInOptions()
5757
local.setTunnel(tunnelMock.Object);
5858
Assert.DoesNotThrow(new TestDelegate(startWithOptions),
5959
"BROWSERSTACK_ACCESS_KEY cannot be empty. Specify one by adding key to options or adding to the environment variable BROWSERSTACK_ACCESS_KEY.");
60-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
60+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" " + "--source \"c-sharp:.*")), Times.Once());
6161
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
6262
local.stop();
6363
}
@@ -73,7 +73,7 @@ public void TestWorksWithAccessKeyNotInOptions()
7373
local.setTunnel(tunnelMock.Object);
7474
Assert.DoesNotThrow(new TestDelegate(startWithOptions),
7575
"BROWSERSTACK_ACCESS_KEY cannot be empty. Specify one by adding key to options or adding to the environment variable BROWSERSTACK_ACCESS_KEY.");
76-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
76+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" .*")), Times.Once());
7777
tunnelMock.Verify(mock => mock.Run("envDummyKey", "", logAbsolute, "start"), Times.Once());
7878
local.stop();
7979
}
@@ -90,7 +90,7 @@ public void TestWorksForFolderTesting()
9090
tunnelMock.Setup(mock => mock.Run("dummyKey", "dummyFolderPath", logAbsolute, "start"));
9191
local.setTunnel(tunnelMock.Object);
9292
local.start(options);
93-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
93+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" .*")), Times.Once());
9494
tunnelMock.Verify(mock => mock.Run("dummyKey", "dummyFolderPath", logAbsolute, "start"), Times.Once());
9595
local.stop();
9696
}
@@ -108,7 +108,7 @@ public void TestWorksForBinaryPath()
108108
local.setTunnel(tunnelMock.Object);
109109
local.start(options);
110110
tunnelMock.Verify(mock => mock.addBinaryPath("dummyPath"), Times.Once);
111-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
111+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" .*")), Times.Once());
112112
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
113113
local.stop();
114114
}
@@ -130,7 +130,7 @@ public void TestWorksWithBooleanOptions()
130130
local.setTunnel(tunnelMock.Object);
131131
local.start(options);
132132
tunnelMock.Verify(mock => mock.addBinaryPath(""), Times.Once);
133-
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-vvv.*-force.*-forcelocal.*-forceproxy.*-onlyAutomate")), Times.Once());
133+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-vvv.*-force.*-forcelocal.*-forceproxy.*-onlyAutomate.*")), Times.Once());
134134
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
135135
local.stop();
136136
}
@@ -154,7 +154,7 @@ public void TestWorksWithValueOptions()
154154
local.start(options);
155155
tunnelMock.Verify(mock => mock.addBinaryPath(""), Times.Once);
156156
tunnelMock.Verify(mock => mock.addBinaryArguments(
157-
It.IsRegex("-localIdentifier.*dummyIdentifier.*dummyHost.*-proxyHost.*dummyHost.*-proxyPort.*dummyPort.*-proxyUser.*dummyUser.*-proxyPass.*dummyPass")
157+
It.IsRegex("-localIdentifier.*dummyIdentifier.*dummyHost.*-proxyHost.*dummyHost.*-proxyPort.*dummyPort.*-proxyUser.*dummyUser.*-proxyPass.*dummyPass.*")
158158
), Times.Once());
159159
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
160160
local.stop();
@@ -177,7 +177,7 @@ public void TestWorksWithCustomOptions()
177177
local.start(options);
178178
tunnelMock.Verify(mock => mock.addBinaryPath(""), Times.Once);
179179
tunnelMock.Verify(mock => mock.addBinaryArguments(
180-
It.IsRegex("-customBoolKey1.*-customBoolKey2.*-customKey1.*customValue1.*-customKey2.*customValue2")
180+
It.IsRegex("-customBoolKey1.*-customBoolKey2.*-customKey1.*customValue1.*-customKey2.*customValue2.*")
181181
), Times.Once());
182182
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
183183
local.stop();
@@ -201,7 +201,7 @@ public void TestCallsFallbackOnFailure()
201201
local.setTunnel(tunnelMock.Object);
202202
local.start(options);
203203
tunnelMock.Verify(mock => mock.addBinaryPath(""), Times.Once);
204-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
204+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" .*")), Times.Once());
205205
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Exactly(2));
206206
tunnelMock.Verify(mock => mock.fallbackPaths(), Times.Once());
207207
local.stop();
@@ -220,7 +220,7 @@ public void TestKillsTunnel()
220220
local.start(options);
221221
local.stop();
222222
tunnelMock.Verify(mock => mock.addBinaryPath(""), Times.Once);
223-
tunnelMock.Verify(mock => mock.addBinaryArguments("-logFile \"" + logAbsolute + "\" "), Times.Once());
223+
tunnelMock.Verify(mock => mock.addBinaryArguments(It.IsRegex("-logFile \"" + logAbsolute + "\" .*")), Times.Once());
224224
tunnelMock.Verify(mock => mock.Run("dummyKey", "", logAbsolute, "start"), Times.Once());
225225
}
226226

BrowserStackLocal/BrowserStackLocal/BrowserStackLocal.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
<Title>BrowserStackLocalTitle>
88
<Product>BrowserStackLocalProduct>
99
<Description>C# Bindings for BrowserStack LocalDescription>
10-
<Version>2.2.0Version>
11-
<AssemblyVersion>2.2.0AssemblyVersion>
12-
<FileVersion>2.2.0FileVersion>
10+
<Version>2.3.0Version>
11+
<AssemblyVersion>2.3.0AssemblyVersion>
12+
<FileVersion>2.3.0FileVersion>
1313
<Authors>BrowserStackAuthors>
1414
<Company>BrowserStackCompany>
1515
<Copyright>Copyright © 2016Copyright>
1616
<PackageLicenseFile>MIT-LICENSE.txtPackageLicenseFile>
1717
PropertyGroup>
1818
<ItemGroup>
19-
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
19+
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
2020
ItemGroup>
2121
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
2222
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.7.0" />

0 commit comments

Comments
 (0)