├── Chickensoft.GodotTestDriver.Tests
├── test
│ ├── Tests.cs.uid
│ ├── src
│ │ ├── Drivers
│ │ │ ├── DriverTest.cs.uid
│ │ │ ├── ButtonDriverTest.cs.uid
│ │ │ ├── LabelDriverTest.cs.uid
│ │ │ ├── WindowDriverTest.cs.uid
│ │ │ ├── Camera2DDriverTest.cs.uid
│ │ │ ├── CheckBoxDriverTest.cs.uid
│ │ │ ├── GraphEditDriverTest.cs.uid
│ │ │ ├── ItemListDriverTest.cs.uid
│ │ │ ├── LineEditDriverTest.cs.uid
│ │ │ ├── PopupMenuDriverTest.cs.uid
│ │ │ ├── Sprite2DDriverTest.cs.uid
│ │ │ ├── TextEditDriverTest.cs.uid
│ │ │ ├── OptionButtonDriverTest.cs.uid
│ │ │ ├── RichTextLabelDriverTest.cs.uid
│ │ │ ├── TabContainerDriverTest.cs.uid
│ │ │ ├── LineEditDriverTest.tscn
│ │ │ ├── LabelDriverTest.tscn
│ │ │ ├── TextEditDriverTest.tscn
│ │ │ ├── CheckBoxDriverTest.tscn
│ │ │ ├── ItemListDriverTest.tscn
│ │ │ ├── Sprite2DDriverTest.tscn
│ │ │ ├── RichTextLabelDriverTest.tscn
│ │ │ ├── Camera2DDriverTest.tscn
│ │ │ ├── OptionButtonDriverTest.tscn
│ │ │ ├── LabelDriverTest.cs
│ │ │ ├── DriverTest.cs
│ │ │ ├── TabContainerDriverTest.tscn
│ │ │ ├── PopupMenuDriverTest.tscn
│ │ │ ├── CheckBoxDriverTest.cs
│ │ │ ├── ButtonDriverTest.tscn
│ │ │ ├── WindowDriverTest.tscn
│ │ │ ├── RichTextLabelDriverTest.cs
│ │ │ ├── WindowDriverTest.cs
│ │ │ ├── Sprite2DDriverTest.cs
│ │ │ ├── ButtonDriverTest.cs
│ │ │ ├── Camera2DDriverTest.cs
│ │ │ ├── TextEditDriverTest.cs
│ │ │ ├── TabContainerDriverTest.cs
│ │ │ ├── PopupMenuDriverTest.cs
│ │ │ ├── GraphEditDriverTest.tscn
│ │ │ ├── LineEditDriverTest.cs
│ │ │ ├── OptionButtonDriverTest.cs
│ │ │ ├── GraphEditDriverTest.cs
│ │ │ └── ItemListDriverTest.cs
│ │ └── Input
│ │ │ ├── InputTest.cs.uid
│ │ │ ├── ActionsInputExtensionsTest.cs.uid
│ │ │ ├── ControllerInputExtensionsTest.cs.uid
│ │ │ ├── ActionsInputExtensionsTest.tscn
│ │ │ ├── ControllerInputExtensionsTest.tscn
│ │ │ ├── InputTest.cs
│ │ │ ├── ActionsInputExtensionsTest.cs
│ │ │ └── ControllerInputExtensionsTest.cs
│ ├── Tests.tscn
│ └── Tests.cs
├── nuget.config
├── project.godot
├── icon.svg.import
├── Chickensoft.GodotTestDriver.Tests.csproj
├── Chickensoft.GodotTestDriver.Tests.sln
└── icon.svg
├── .gitattributes
├── renovate.json
├── Chickensoft.GodotTestDriver
├── icon.png
├── src
│ ├── Util
│ │ ├── Timeout.cs
│ │ ├── Log.cs
│ │ └── InternalUtil.cs
│ ├── Drivers
│ │ ├── Node2DDriver.cs
│ │ ├── ButtonDriver.cs
│ │ ├── LabelDriver.cs
│ │ ├── CheckBoxDriver.cs
│ │ ├── CanvasItemDriver.cs
│ │ ├── RichTextLabelDriver.cs
│ │ ├── Port.cs
│ │ ├── Sprite2DDriver.cs
│ │ ├── TextEditDriver.cs
│ │ ├── BaseButtonDriver.cs
│ │ ├── ControlDriver.cs
│ │ ├── LineEditDriver.cs
│ │ ├── Camera2DDriver.cs
│ │ ├── WindowDriver.cs
│ │ ├── TabContainerDriver.cs
│ │ ├── NodeDriver.cs
│ │ ├── OptionButtonDriver.cs
│ │ ├── GraphEditDriver.cs
│ │ ├── ItemListDriver.cs
│ │ ├── PopupMenuDriver.cs
│ │ └── GraphNodeDriver.cs
│ └── Input
│ │ ├── ActionsInputExtensions.cs
│ │ ├── KeyboardInputExtensions.cs
│ │ ├── MouseInputExtensions.cs
│ │ └── ControllerInputExtensions.cs
├── Configuration.cs
├── Chickensoft.GodotTestDriver.csproj
└── Fixture.cs
├── global.json
├── .gitignore
├── .github
└── workflows
│ ├── spellcheck.yaml
│ ├── auto_release.yaml
│ ├── visual_tests.yaml
│ └── release.yaml
├── LICENSE
├── .vscode
├── launch.json
├── tasks.json
└── settings.json
├── cspell.json
├── CONTRIBUTING.md
└── Chickensoft.GodotTestDriver.sln
/Chickensoft.GodotTestDriver.Tests/test/Tests.cs.uid:
--------------------------------------------------------------------------------
1 | uid://hy0f6ptrmrqf
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 | *.png filter=lfs diff=lfs merge=lfs -text
3 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/DriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://dopgap6n7v77
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Input/InputTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://d2dscy0ooqvhg
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/ButtonDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://bma6r4vcefwq7
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/LabelDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://bk0kg8a2tqnlt
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/WindowDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://dd7q1my4fb0ei
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/Camera2DDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://cikqsnkgf5lps
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/CheckBoxDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://csy46l1gpccxe
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/GraphEditDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://d2xus62t6wcjo
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/ItemListDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://d3pedejniwavv
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/LineEditDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://lkgdd4ifr7ty
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/PopupMenuDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://ckcfbcp7skgns
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/Sprite2DDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://bwq1rptdt4348
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/TextEditDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://kelhlyvjidun
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/OptionButtonDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://cn26m54qqj8tn
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/RichTextLabelDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://bb05oj18e7r3l
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/TabContainerDriverTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://bog85erwxjjis
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Input/ActionsInputExtensionsTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://cliqwyhsavysb
2 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Input/ControllerInputExtensionsTest.cs.uid:
--------------------------------------------------------------------------------
1 | uid://cgiif6jvm2lxo
2 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": ["github>chickensoft-games/renovate:godot"]
4 | }
5 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver/icon.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:47fb952db9c95108d064a2112a124b2e8bb0dddde7135dea9bd51b01fd471370
3 | size 464484
4 |
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "msbuild-sdks": {
3 | "Godot.NET.Sdk": "4.5.1"
4 | },
5 | "sdk": {
6 | "rollForward": "major",
7 | "version": "8.0.416"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Input/ActionsInputExtensionsTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://busk27caw7oi8"]
2 |
3 | [node name="ActionsControlExtensionsTest" type="Node"]
4 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Input/ControllerInputExtensionsTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://blvfape3o5unh"]
2 |
3 | [node name="ControllerInputExtensionsTest" type="Node"]
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | **/coverage/*
2 | !**/coverage/.gdignore
3 | nupkg/
4 | **/.godot/
5 | **/.import/
6 | bin/
7 | obj/
8 | .generated/
9 | .DS_Store
10 | *.DotSettings.user
11 | *.binlog
12 |
13 | # IDEs
14 | **/.idea
15 | .vs/
16 | .vscode/extensions.json
17 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/Tests.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://iwpykuj2u0st"]
2 |
3 | [ext_resource type="Script" uid="uid://hy0f6ptrmrqf" path="res://test/Tests.cs" id="1_rncp0"]
4 |
5 | [node name="Tests" type="Node2D"]
6 | script = ExtResource("1_rncp0")
7 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/LineEditDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://d1sy0we7k2jcd"]
2 |
3 | [node name="LineEditDriverTest" type="Node2D"]
4 |
5 | [node name="LineEdit" type="LineEdit" parent="."]
6 | offset_left = 104.0
7 | offset_top = 51.0
8 | offset_right = 350.0
9 | offset_bottom = 97.0
10 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/LabelDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://dvrsoja7h1mm2"]
2 |
3 | [node name="LabelDriverTest" type="Node2D"]
4 |
5 | [node name="Label" type="Label" parent="."]
6 | offset_left = 193.0
7 | offset_top = 144.0
8 | offset_right = 517.0
9 | offset_bottom = 179.0
10 | text = "Hello World!"
11 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/TextEditDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://dworisxq0kj3r"]
2 |
3 | [node name="TextEditDriverTest" type="Node2D"]
4 |
5 | [node name="TextEdit" type="TextEdit" parent="."]
6 | offset_left = 517.0
7 | offset_top = 268.0
8 | offset_right = 820.0
9 | offset_bottom = 418.0
10 | text = "Lorem ipsum"
11 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/CheckBoxDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://c0dcedt5pjata"]
2 |
3 | [node name="CheckBoxDriverTest" type="Node2D"]
4 |
5 | [node name="CheckBox" type="CheckBox" parent="."]
6 | offset_left = 213.0
7 | offset_top = 153.0
8 | offset_right = 467.0
9 | offset_bottom = 199.0
10 | text = "I am a checkbox"
11 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/Tests.cs:
--------------------------------------------------------------------------------
1 | namespace Chickensoft.GodotTestDriver.Tests;
2 |
3 | using System.Reflection;
4 | using Chickensoft.GoDotTest;
5 | using Godot;
6 |
7 | public partial class Tests : Node2D
8 | {
9 | ///
10 | /// Called when the node enters the scene tree for the first time.
11 | ///
12 | public override void _Ready() => CallDeferred("Go");
13 |
14 | private void Go() => GoTest.RunTests(Assembly.GetExecutingAssembly(), this);
15 | }
16 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/ItemListDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://b81ckv34wmjlc"]
2 |
3 | [node name="ItemListDriverTest" type="Node2D"]
4 |
5 | [node name="ItemList" type="ItemList" parent="."]
6 | offset_left = 324.0
7 | offset_top = 100.0
8 | offset_right = 604.0
9 | offset_bottom = 472.0
10 | select_mode = 1
11 | item_count = 4
12 | item_0/text = "Normal Item 1"
13 | item_1/text = "Normal Item 2"
14 | item_2/text = "NonSelectable Item"
15 | item_2/selectable = false
16 | item_3/text = "Disabled Item"
17 | item_3/selectable = false
18 | item_3/disabled = true
19 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/Sprite2DDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://d4h68q1tnthl8"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://da2tcc2mhkfgi" path="res://icon.svg" id="1_00i83"]
4 |
5 | [node name="Sprite2DDriverTest" type="Node2D"]
6 |
7 | [node name="Sprite2D" type="Sprite2D" parent="."]
8 | position = Vector2(536, 270)
9 | texture = ExtResource("1_00i83")
10 | flip_v = true
11 |
12 | [node name="PartiallyVisibleSprite2D" type="Sprite2D" parent="."]
13 | position = Vector2(0, 641)
14 | texture = ExtResource("1_00i83")
15 | flip_h = true
16 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/RichTextLabelDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://c3virdkgqd06g"]
2 |
3 | [node name="RichTextLabelDriverTest" type="Node2D"]
4 |
5 | [node name="RichTextLabel" type="RichTextLabel" parent="."]
6 | offset_left = 140.0
7 | offset_top = 120.0
8 | offset_right = 443.0
9 | offset_bottom = 269.0
10 | text = "Hello World!"
11 |
12 | [node name="BbCodeRichTextLabel" type="RichTextLabel" parent="."]
13 | offset_left = 589.0
14 | offset_top = 229.0
15 | offset_right = 892.0
16 | offset_bottom = 378.0
17 | bbcode_enabled = true
18 | text = "Hello [b]World![/b]"
19 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/Camera2DDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://dv7ckjksq1etn"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://da2tcc2mhkfgi" path="res://icon.svg" id="1_3y0um"]
4 |
5 | [node name="Camera2DDriverTest" type="Node2D"]
6 |
7 | [node name="Camera2D" type="Camera2D" parent="."]
8 | position_smoothing_enabled = true
9 |
10 | [node name="CenterSprite" type="Sprite2D" parent="."]
11 | texture = ExtResource("1_3y0um")
12 |
13 | [node name="OffCenterSprite" type="Sprite2D" parent="."]
14 | position = Vector2(776, 457)
15 | texture = ExtResource("1_3y0um")
16 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/OptionButtonDriverTest.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene format=3 uid="uid://hgwgepqes1tp"]
2 |
3 | [node name="OptionButtonDriverTest" type="Node2D"]
4 |
5 | [node name="OptionButton" type="OptionButton" parent="."]
6 | offset_left = 405.0
7 | offset_top = 156.0
8 | offset_right = 560.0
9 | offset_bottom = 187.0
10 | item_count = 4
11 | popup/item_0/text = "Normal Item 1"
12 | popup/item_0/id = 0
13 | popup/item_1/text = "Normal Item 2"
14 | popup/item_1/id = 1
15 | popup/item_2/text = "Separator"
16 | popup/item_2/id = 2
17 | popup/item_2/separator = true
18 | popup/item_3/text = "Disabled Item"
19 | popup/item_3/id = 3
20 | popup/item_3/disabled = true
21 |
--------------------------------------------------------------------------------
/Chickensoft.GodotTestDriver.Tests/test/src/Drivers/LabelDriverTest.cs:
--------------------------------------------------------------------------------
1 | namespace Chickensoft.GodotTestDriver.Tests.Drivers;
2 |
3 | using Chickensoft.GoDotTest;
4 | using Godot;
5 | using GodotTestDriver.Drivers;
6 | using Shouldly;
7 |
8 | public class LabelDriverTest : DriverTest
9 | {
10 | private readonly LabelDriver _label;
11 |
12 | public LabelDriverTest(Node testScene) : base(testScene)
13 | {
14 | _label = new LabelDriver(() => RootNode.GetNode