├── 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