diff --git a/tests/plugins/Redial/basic/common.h b/tests/plugins/Redial/basic/common.h
new file mode 100644
index 00000000..5e6093ed
--- /dev/null
+++ b/tests/plugins/Redial/basic/common.h
@@ -0,0 +1,32 @@
+// -*- mode: c++ -*-
+/* Kaleidoscope - Firmware for computer input devices
+ * Copyright (C) 2020 Keyboard.io, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+#pragma once
+
+#include
+#include
+#include
+
+#include "keymap.h"
+
+namespace kaleidoscope {
+namespace testing {
+
+// Constants shared by both the sketch and the testcase should be defined here.
+
+} // namespace testing
+} // namespace kaleidoscope
diff --git a/tests/plugins/Redial/basic/keymap-overrides.h b/tests/plugins/Redial/basic/keymap-overrides.h
new file mode 100644
index 00000000..df71c1af
--- /dev/null
+++ b/tests/plugins/Redial/basic/keymap-overrides.h
@@ -0,0 +1,39 @@
+/* -*- mode: c++ -*-
+ * Copyright (C) 2020 Keyboard.io, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+#pragma once
+
+#include
+#include
+#include "testing/keymap-defaults.h"
+
+#include
+
+namespace kaleidoscope {
+namespace testing {
+namespace keymap {
+
+class Keymap : public KeymapDefaults {
+ public:
+ // Layer 0
+ static constexpr Key key_0AA = Key_Redial;
+ static constexpr Key key_0AB = Key_A;
+ static constexpr Key key_0AC = Key_X;
+};
+
+} // namespace keymap
+} // namespace testing
+} // namespace kaleidoscope
diff --git a/tests/plugins/Redial/basic/keymap.h b/tests/plugins/Redial/basic/keymap.h
new file mode 100644
index 00000000..1a187167
--- /dev/null
+++ b/tests/plugins/Redial/basic/keymap.h
@@ -0,0 +1,31 @@
+// -*- mode: c++ -*-
+/* Kaleidoscope - Firmware for computer input devices
+ * Copyright (C) 2020 Keyboard.io, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+#pragma once
+
+// Default key values to be used in sketches are defined from the
+// `keymap-defaults.h` file, provided by Kaleidoscope.
+#include "testing/keymap-defaults.h"
+
+// For keys of interest, the values can be overridden by defining them in the
+// `keymap-overrides.h` file, in this directory.
+#include "keymap-overrides.h"
+
+// Finally, we include this file so we can refer to key values in the keymap
+// more briefly (`key_0AA` vs `Keymap::key_0AA`, both in the
+// `kaleidoscope::testing::keymap` namespace).
+#include "testing/keymap-aliases.inc"
diff --git a/tests/plugins/Redial/basic/sketch.ino b/tests/plugins/Redial/basic/sketch.ino
index f6ba3301..b96c1001 100644
--- a/tests/plugins/Redial/basic/sketch.ino
+++ b/tests/plugins/Redial/basic/sketch.ino
@@ -17,30 +17,13 @@
#include
#include
-// *INDENT-OFF*
-KEYMAPS(
- [0] = KEYMAP_STACKED
- (
- Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey,
- Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab,
- Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G,
- Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,
+#include "./common.h"
+#include "testing/default-layers.h"
- Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
- XXX,
+using namespace kaleidoscope::testing::keymap;
- Key_Redial, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip,
- Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals,
- Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote,
- Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
+KEYMAPS(LAYER_0);
- Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl,
- XXX
- ),
-)
-// *INDENT-ON*
-
-// Use Redial
KALEIDOSCOPE_INIT_PLUGINS(Redial);
void setup() {
diff --git a/tests/plugins/Redial/basic/test/testcase.cpp b/tests/plugins/Redial/basic/test/testcase.cpp
index fd941cf3..10292351 100644
--- a/tests/plugins/Redial/basic/test/testcase.cpp
+++ b/tests/plugins/Redial/basic/test/testcase.cpp
@@ -16,15 +16,17 @@
#include "testing/setup-googletest.h"
+#include "../common.h"
+
SETUP_GOOGLETEST();
namespace kaleidoscope {
namespace testing {
namespace {
-constexpr KeyAddr key_addr_Redial{0, 9};
-constexpr KeyAddr key_addr_A{2, 1};
-constexpr KeyAddr key_addr_X{3, 2};
+constexpr KeyAddr key_addr_Redial = addr_AA;
+constexpr KeyAddr key_addr_A = addr_AB;
+constexpr KeyAddr key_addr_X = addr_AC;
class RedialBasic : public VirtualDeviceTest {
};