-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathBrowserStackTunnelTests.cs
More file actions
126 lines (119 loc) · 4.03 KB
/
BrowserStackTunnelTests.cs
File metadata and controls
126 lines (119 loc) · 4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using NUnit.Framework;
using BrowserStack;
using System.Text;
using System.IO;
namespace BrowserStack_Unit_Tests
{
[TestClass]
public class BrowserStackTunnelTests
{
static readonly OperatingSystem os = Environment.OSVersion;
static readonly string homepath = os.Platform.ToString() == "Unix" ?
Environment.GetFolderPath(Environment.SpecialFolder.Personal) :
Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
static readonly string binaryName = os.Platform.ToString() == "Unix" ? "BrowserStackLocal-darwin-x64" : "BrowserStackLocal.exe";
private TunnelClass tunnel;
[TestMethod]
public void TestInitialState()
{
tunnel = new TunnelClass();
Assert.AreEqual(tunnel.localState, LocalState.Idle);
Assert.NotNull(tunnel.getOutputBuilder());
}
[TestMethod]
public void TestBinaryPathIsSet()
{
tunnel = new TunnelClass();
tunnel.addBinaryPath("dummyPath", "");
Assert.AreEqual(tunnel.getBinaryAbsolute(), "dummyPath");
}
[TestMethod]
public void TestBinaryPathOnNull()
{
tunnel = new TunnelClass();
tunnel.addBinaryPath(null, "");
string expectedPath = Path.Combine(homepath, ".browserstack");
expectedPath = Path.Combine(expectedPath, binaryName);
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
}
[TestMethod]
public void TestBinaryPathOnEmpty()
{
tunnel = new TunnelClass();
tunnel.addBinaryPath("", "");
string expectedPath = Path.Combine(homepath, ".browserstack");
expectedPath = Path.Combine(expectedPath, binaryName);
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
}
[TestMethod]
public void TestBinaryPathOnFallback()
{
string expectedPath = "dummyPath";
tunnel = new TunnelClass();
tunnel.addBinaryPath("dummyPath", "");
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
tunnel.fallbackPaths();
expectedPath = Path.Combine(homepath, ".browserstack");
expectedPath = Path.Combine(expectedPath, binaryName);
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
tunnel.fallbackPaths();
expectedPath = Directory.GetCurrentDirectory();
expectedPath = Path.Combine(expectedPath, binaryName);
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
tunnel.fallbackPaths();
expectedPath = Path.GetTempPath();
expectedPath = Path.Combine(expectedPath, binaryName);
Assert.AreEqual(tunnel.getBinaryAbsolute(), expectedPath);
}
[TestMethod]
public void TestBinaryPathOnNoMoreFallback()
{
tunnel = new TunnelClass();
tunnel.addBinaryPath("dummyPath", "");
tunnel.fallbackPaths();
tunnel.fallbackPaths();
tunnel.fallbackPaths();
Assert.Throws(typeof(Exception),
new TestDelegate(testFallbackException),
"Binary not found or failed to launch. Make sure that BrowserStackLocal is not already running."
);
}
[TestMethod]
public void TestBinaryArguments()
{
tunnel = new TunnelClass();
tunnel.addBinaryArguments("dummyArguments");
Assert.AreEqual(tunnel.getBinaryArguments(), "dummyArguments");
}
[TestMethod]
public void TestBinaryArgumentsAreEmptyOnNull()
{
tunnel = new TunnelClass();
tunnel.addBinaryArguments(null);
Assert.AreEqual(tunnel.getBinaryArguments(), "");
}
public void testFallbackException()
{
tunnel.fallbackPaths();
}
public class TunnelClass : BrowserStackTunnel
{
public StringBuilder getOutputBuilder()
{
return output;
}
public string getBinaryAbsolute()
{
return binaryAbsolute;
}
public string getBinaryArguments()
{
return binaryArguments;
}
}
}
}