* Add ability to specify chart generation url for self hosted QuickChart * Add more configuration setting: if user specify: a host only, default to https:443, a host and http, set port to 80 a host and https, set port to 443 Co-authored-by: Duca Diana <dduca@globebmg.com>
144 lines
4.1 KiB
C#
144 lines
4.1 KiB
C#
using System;
|
|
using Xunit;
|
|
|
|
using QuickChart;
|
|
|
|
namespace QuickChartTest
|
|
{
|
|
public class QuickChartTest
|
|
{
|
|
[Fact]
|
|
public void TestBasic()
|
|
{
|
|
Chart qc = new Chart
|
|
{
|
|
Width = 500,
|
|
Height = 300,
|
|
Config = @"{
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
datasets: [{
|
|
label: 'Users',
|
|
data: [50, 60, 70, 180]
|
|
}]
|
|
}
|
|
}"
|
|
};
|
|
|
|
string url = qc.GetUrl();
|
|
Assert.Contains("https://quickchart.io:443/chart", url);
|
|
Assert.Contains("w=500", url);
|
|
Assert.Contains("h=300", url);
|
|
Assert.DoesNotContain("key=", url);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestWithKey()
|
|
{
|
|
Chart qc = new Chart
|
|
{
|
|
Key = "abc123",
|
|
Width = 500,
|
|
Height = 300,
|
|
Config = @"{
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
datasets: [{
|
|
label: 'Users',
|
|
data: [50, 60, 70, 180]
|
|
}]
|
|
}
|
|
}"
|
|
};
|
|
|
|
string url = qc.GetUrl();
|
|
Assert.Contains("https://quickchart.io:443/chart", url);
|
|
Assert.Contains("w=500", url);
|
|
Assert.Contains("h=300", url);
|
|
Assert.Contains("key=abc123", url);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestWithFormat()
|
|
{
|
|
Chart qc = new Chart
|
|
{
|
|
Width = 500,
|
|
Height = 300,
|
|
Format = "svg",
|
|
Config = @"{
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
datasets: [{
|
|
label: 'Users',
|
|
data: [50, 60, 70, 180]
|
|
}]
|
|
}
|
|
}"
|
|
};
|
|
|
|
string url = qc.GetUrl();
|
|
Assert.Contains("https://quickchart.io:443/chart", url);
|
|
Assert.Contains("w=500", url);
|
|
Assert.Contains("h=300", url);
|
|
Assert.Contains("f=svg", url);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestWithVersion()
|
|
{
|
|
Chart qc = new Chart
|
|
{
|
|
Width = 500,
|
|
Height = 300,
|
|
Version = "2.9.4",
|
|
Config = @"{
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
datasets: [{
|
|
label: 'Users',
|
|
data: [50, 60, 70, 180]
|
|
}]
|
|
}
|
|
}"
|
|
};
|
|
|
|
string url = qc.GetUrl();
|
|
Assert.Contains("https://quickchart.io:443/chart", url);
|
|
Assert.Contains("w=500", url);
|
|
Assert.Contains("h=300", url);
|
|
Assert.Contains("v=2.9.4", url);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestWithSelfHostingQuickChart()
|
|
{
|
|
var scheme = "http";
|
|
var host = "localhost";
|
|
var port = 47000;
|
|
Chart qc = new Chart(scheme, host, port);
|
|
qc.Width = 500;
|
|
qc.Height = 300;
|
|
qc.Config = @"{
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
datasets: [{
|
|
label: 'Users',
|
|
data: [50, 60, 70, 180]
|
|
}]
|
|
}[]
|
|
}";
|
|
|
|
string url = qc.GetUrl();
|
|
Assert.Contains($"{scheme}://{host}:{port}/chart", url);
|
|
Assert.Contains("w=500", url);
|
|
Assert.Contains("h=300", url);
|
|
Assert.DoesNotContain("key=", url);
|
|
}
|
|
}
|
|
}
|