Keys_test.cc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "catch.hpp"
  2. #include "Keys.hh"
  3. using namespace openmsx::Keys;
  4. static void test(const std::string& name1, KeyCode code1, bool canonical)
  5. {
  6. std::string name2 = getName(code1);
  7. if (canonical) {
  8. CHECK(name2 == name1);
  9. }
  10. KeyCode code2 = getCode(name1);
  11. CHECK(code2 == code1);
  12. std::string name3 = getName(code2);
  13. CHECK(name3 == name2);
  14. KeyCode code3 = getCode(name2);
  15. CHECK(code3 == code2);
  16. }
  17. TEST_CASE("Keys")
  18. {
  19. test("P", K_P, true);
  20. test("p", K_P, false);
  21. test("1", K_1, true);
  22. test("z", K_Z, false);
  23. test("AT", K_AT, true);
  24. test("Hash", K_HASH, false);
  25. test("slash", K_SLASH, false);
  26. test("EXCLAIM", K_EXCLAIM, true);
  27. test("PeRiOd", K_PERIOD, false);
  28. test("CARET", K_CARET, true);
  29. test("delete", K_DELETE, false);
  30. test("KP7", K_KP7, true);
  31. test("KP_ENTER", K_KP_ENTER, true);
  32. test("up", K_UP, false);
  33. test("End", K_END, false);
  34. test("pageup", K_PAGEUP, false);
  35. test("PAGEDOWN", K_PAGEDOWN, true);
  36. test("F8", K_F8, true);
  37. test("RCTRL", K_RCTRL, true);
  38. test("P+SHIFT", combine(K_P, KM_SHIFT), true);
  39. test("q,shift", combine(K_Q, KM_SHIFT), false);
  40. test("R/shift", combine(K_R, KM_SHIFT), false);
  41. test("ctrl+c", combine(K_C, KM_CTRL), false);
  42. test("ALT/E", combine(K_E, KM_ALT), false);
  43. test("E+ALT", combine(K_E, KM_ALT), true);
  44. test("5,release", combine(K_5, KD_RELEASE), false);
  45. }