Skip to content

Commit def8f6a

Browse files
authored
Merge pull request #14 from LambdaTest/stage
.Net4.8 version support
2 parents b87f1fe + 6ae55fe commit def8f6a

File tree

5 files changed

+68
-37
lines changed

5 files changed

+68
-37
lines changed
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFrameworks>net8.0;net48</TargetFrameworks>
44
<PackageId>LambdaTest.Sdk.Utils</PackageId>
5-
<Version>1.0.4</Version>
5+
<Version>1.0.5</Version>
66
<Authors>Lambdatest-SmartUI</Authors>
77
<Company>LambdaTest</Company>
88
<Description>LambdaTest SDK Utilities for SmartUI CLI in C#</Description>
@@ -11,5 +11,7 @@
1111
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
1212
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
1313
</ItemGroup>
14-
</Project>
15-
14+
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
15+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
16+
</ItemGroup>
17+
</Project>

LambdaTest.Sdk.Utils/Logger.cs

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,41 @@ private static LogLevel GetLogLevel()
2929
return LogLevel.Debug;
3030
}
3131

32-
var logLevelStr = Environment.GetEnvironmentVariable("LT_SDK_LOG_LEVEL")?.ToLower() ?? "info";
33-
return logLevelStr switch
32+
var logLevelStr = Environment.GetEnvironmentVariable("LT_SDK_LOG_LEVEL");
33+
if (string.IsNullOrEmpty(logLevelStr))
3434
{
35-
"debug" => LogLevel.Debug,
36-
"warning" => LogLevel.Warning,
37-
"error" => LogLevel.Error,
38-
"critical" => LogLevel.Critical,
39-
_ => LogLevel.Information,
40-
};
35+
logLevelStr = "info";
36+
}
37+
else
38+
{
39+
logLevelStr = logLevelStr.ToLower();
40+
}
41+
42+
switch (logLevelStr)
43+
{
44+
case "debug":
45+
return LogLevel.Debug;
46+
case "warning":
47+
return LogLevel.Warning;
48+
case "error":
49+
return LogLevel.Error;
50+
case "critical":
51+
return LogLevel.Critical;
52+
default:
53+
return LogLevel.Information;
54+
}
4155
}
4256

4357
public static ILogger CreateLogger(string packageName)
4458
{
4559
Initialize();
60+
61+
if (loggerFactory == null)
62+
{
63+
throw new InvalidOperationException("Logger factory failed to initialize");
64+
}
65+
4666
return loggerFactory.CreateLogger(packageName);
4767
}
4868
}
49-
}
69+
}

LambdaTest.Sdk.Utils/SmartUI.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#nullable enable
2-
31
using System;
42
using System.Net.Http;
53
using System.Text.Json;
@@ -11,7 +9,7 @@ namespace LambdaTest.Sdk.Utils
119
{
1210
public static class SmartUI
1311
{
14-
private static readonly HttpClient HttpClient = new();
12+
private static readonly HttpClient HttpClient = new HttpClient();
1513
private static readonly ILogger SdkUtilsLogger = Logger.CreateLogger("LambdaTest.Sdk.Utils");
1614

1715

@@ -49,7 +47,7 @@ public static async Task<string> FetchDomSerializer()
4947
}
5048
}
5149

52-
public static async Task<string> PostSnapshot(DomObject snapshot, string pkg, Dictionary<string, object>? options =null)
50+
public static async Task<string> PostSnapshot(DomObject snapshot, string pkg, Dictionary<string, object> options = null)
5351
{
5452
try
5553
{
@@ -125,6 +123,7 @@ public class Resource
125123
public string mimetype { get; set; } = string.Empty;
126124
public string url { get; set; } = string.Empty;
127125
}
126+
128127
public class DomContent
129128
{
130129
public string html { get; set; } = string.Empty;
@@ -142,10 +141,10 @@ public class DomObject
142141

143142
public class SnapshotData
144143
{
145-
public DomContent? dom { get; set; }
146-
public string? name { get; set; }
147-
public string? url { get; set; }
148-
public Dictionary<string, object>? options { get; set; } // Nullable for handling cases with or without options
144+
public DomContent dom { get; set; }
145+
public string name { get; set; }
146+
public string url { get; set; }
147+
public Dictionary<string, object> options { get; set; }
149148
}
150149
}
151-
}
150+
}
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFrameworks>net8.0;net48</TargetFrameworks>
44
<PackageId>LambdaTest.Selenium.Driver</PackageId>
5-
<Version>1.0.4</Version>
5+
<Version>1.0.5</Version>
66
<Authors>Lambdatest-SmartUI</Authors>
77
<Company>LambdaTest</Company>
8-
<Description>LambdaTest C# Selenium SDK </Description>
9-
<ImplicitUsings>enable</ImplicitUsings>
10-
<Nullable>enable</Nullable>
8+
<Description>LambdaTest C# Selenium SDK</Description>
119
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<ProjectReference Include="../LambdaTest.Sdk.Utils/LambdaTest.Sdk.Utils.csproj" />
13+
</ItemGroup>
14+
1215
<ItemGroup>
13-
<PackageReference Include="LambdaTest.Sdk.Utils" Version="1.0.4" />
1416
<PackageReference Include="Selenium.Support" Version="4.21.0" />
1517
<PackageReference Include="Selenium.WebDriver" Version="4.21.0" />
1618
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
1719
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
1820
</ItemGroup>
19-
</Project>
21+
22+
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
23+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
24+
</ItemGroup>
25+
</Project>

LambdaTest.Selenium.Driver/SmartUI.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static class SmartUISnapshot
1313
{
1414
private static readonly ILogger SmartUILogger = Logger.CreateLogger("Lambdatest.Selenium.Driver");
1515

16-
public static async Task<String> CaptureSnapshot(IWebDriver driver, string name, Dictionary<string, object>? options = null)
16+
public static async Task<String> CaptureSnapshot(IWebDriver driver, string name, Dictionary<string, object> options = null)
1717
{
1818
if (string.IsNullOrEmpty(name))
1919
{
@@ -36,7 +36,7 @@ public static async Task<String> CaptureSnapshot(IWebDriver driver, string name,
3636

3737
var domSerializerScript = JsonSerializer.Deserialize<FetchDomSerializerResponse>(domSerializerResponse, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
3838

39-
if (domSerializerScript?.Data?.Dom == null)
39+
if (domSerializerScript == null || domSerializerScript.Data == null || domSerializerScript.Data.Dom == null)
4040
{
4141
throw new Exception("Failed to json serialize the DOM serializer script.");
4242
}
@@ -96,7 +96,7 @@ public static async Task<String> CaptureSnapshot(IWebDriver driver, string name,
9696
};
9797

9898
// Handle sync parameter if present
99-
if (options?.ContainsKey("sync") == true && (bool)options["sync"])
99+
if (options != null && options.ContainsKey("sync") && (bool)options["sync"])
100100
{
101101
var contextId = Guid.NewGuid().ToString();
102102
options["contextId"] = contextId;
@@ -105,7 +105,7 @@ public static async Task<String> CaptureSnapshot(IWebDriver driver, string name,
105105
var apiResponseJSON = await LambdaTest.Sdk.Utils.SmartUI.PostSnapshot(dom, "Lambdatest.Selenium.Driver", options);
106106
var apiResponse = JsonSerializer.Deserialize<ApiResponse>(apiResponseJSON, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
107107

108-
if (apiResponse?.Data?.Warnings != null && apiResponse.Data.Warnings.Count > 0)
108+
if (apiResponse != null && apiResponse.Data != null && apiResponse.Data.Warnings != null && apiResponse.Data.Warnings.Count > 0)
109109
{
110110
foreach (var warning in apiResponse.Data.Warnings)
111111
{
@@ -117,11 +117,15 @@ public static async Task<String> CaptureSnapshot(IWebDriver driver, string name,
117117

118118
// Get Snapshot Status
119119
var timeout=600;
120-
if (options.ContainsKey("timeout")){
120+
if (options.ContainsKey("timeout"))
121+
{
121122
var tempTimeout= (int)options["timeout"];
122-
if (tempTimeout<30||tempTimeout>900){
123+
if (tempTimeout<30||tempTimeout>900)
124+
{
123125
SmartUILogger.LogWarning("Timeout value is out of range(30-900). Defaulting to 600 seconds.");
124-
}else{
126+
}
127+
else
128+
{
125129
timeout=tempTimeout;
126130
}
127131
}
@@ -135,7 +139,7 @@ public static async Task<String> CaptureSnapshot(IWebDriver driver, string name,
135139
var apiResponseJSON = await LambdaTest.Sdk.Utils.SmartUI.PostSnapshot(dom, "Lambdatest.Selenium.Driver", options);
136140
var apiResponse = JsonSerializer.Deserialize<ApiResponse>(apiResponseJSON, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
137141

138-
if (apiResponse?.Data?.Warnings != null && apiResponse.Data.Warnings.Count > 0)
142+
if (apiResponse != null && apiResponse.Data != null && apiResponse.Data.Warnings != null && apiResponse.Data.Warnings.Count > 0)
139143
{
140144
foreach (var warning in apiResponse.Data.Warnings)
141145
{

0 commit comments

Comments
 (0)