summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-09-22 12:15:33 -0500
committerBryan Bishop <kanzure@gmail.com>2013-09-22 12:15:33 -0500
commite048f192d9a81bf99d6eb5d7f78714cc825b4859 (patch)
treeed09e80e2483aa0218495c39ae57cacc012d26c0
parent6e4c7d5a0f1e5d416b204e83348df3a619631d8f (diff)
test keyboard typing functions
This tests 18 different names being typed on the keyboard. These are supposed to be typed using the shortest possible sequence of button presses to get to the right letter selection.
-rw-r--r--tests/test_vba.py72
1 files changed, 57 insertions, 15 deletions
diff --git a/tests/test_vba.py b/tests/test_vba.py
index b9ce832..8527e7b 100644
--- a/tests/test_vba.py
+++ b/tests/test_vba.py
@@ -99,6 +99,17 @@ class VbaTests(unittest.TestCase):
end = (self.get_wram_value("MapY"), self.get_wram_value("MapX"))
return start != end
+ def bootstrap_name_prompt(self):
+ runner = autoplayer.SpeedRunner(cry=None)
+ runner.setup()
+ runner.skip_intro(stop_at_name_selection=True, skip=False, override=False)
+
+ self.cry.vba.press("a", hold=20)
+
+ # wait for "Your name?" to show up
+ while "YOUR NAME?" not in self.cry.get_text():
+ self.cry.step(count=50)
+
def test_movement_changes_player_direction(self):
player_direction = self.get_wram_value("PlayerDirection")
@@ -212,26 +223,57 @@ class VbaTests(unittest.TestCase):
self.assertEqual(self.get_wram_value("MapGroup"), 24)
self.assertEqual(self.get_wram_value("MapNumber"), 4)
- def test_keyboard_typing(self):
- runner = autoplayer.SpeedRunner(cry=None)
- runner.setup()
- runner.skip_intro(stop_at_name_selection=True, skip=False, override=False)
-
- self.cry.vba.press("a", hold=20)
-
- # wait for "Your name?" to show up
- text = self.cry.get_text()
-
- while "YOUR NAME?" not in text:
- self.cry.step(count=50)
- text = self.cry.get_text()
+ def test_keyboard_typing_dumb_name(self):
+ self.bootstrap_name_prompt()
- self.cry.write()
+ name = "tRaInEr"
+ self.cry.write(name)
# save this selection
self.cry.vba.press("a", hold=20)
- # TODO: confirm the test was real
+ self.assertEqual(name, self.cry.get_player_name())
+
+ def test_keyboard_typing_cap_name(self):
+ names = [
+ "trainer",
+ "TRAINER",
+ "TrAiNeR",
+ "tRaInEr",
+ "ExAmPlE",
+ "Chris",
+ "Kris",
+ "beepaaa",
+ "chris",
+ "CHRIS",
+ "Python",
+ "pYthon",
+ "pyThon",
+ "pytHon",
+ "pythOn",
+ "pythoN",
+ "python",
+ "PyThOn",
+ ]
+
+ self.bootstrap_name_prompt()
+ start_state = self.cry.vba.state
+
+ for name in names:
+ print "Writing name: " + name
+
+ self.cry.vba.state = start_state
+
+ sequence = self.cry.write(name)
+
+ print "sequence is: " + str(sequence)
+
+ # save this selection
+ self.cry.vba.press("start", hold=20)
+ self.cry.vba.press("a", hold=20)
+
+ pname = self.cry.get_player_name().replace("@", "")
+ self.assertEqual(name, pname)
if __name__ == "__main__":
unittest.main()