repeat83

TestCalculator

May 23rd, 2016
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Global variables;
  2. var proc; // Object of calculator for click
  3. var ExpResult; // Expected result
  4.  
  5. function TestCalc(str)
  6. {
  7.   res = str.split(/[=]/);
  8.   Input = res[0];
  9.   ExpResult = res[1];
  10.  
  11.   // Terminate process
  12.   p = Sys.WaitProcess("Microsoft.WindowsCalculator",0);
  13.   if (p.Exists) p.Close();
  14.  
  15.   // Start new process
  16.   TestedApps.calc.Run();
  17.   p = Sys.WaitProcess("Microsoft.WindowsCalculator", 2000);
  18.   if (! p.Exists) {
  19.     // Process does not exist
  20.     Log.Error("Microsoft.WindowsCalculator can't started");
  21.     Runner.Stop();
  22.   }
  23.  
  24.   proc = p.UIAObject("Calculator");
  25.   proc.UIAObject("Clear_entry").Click();
  26.   parseInputToClick(Input);
  27.    
  28.   // If Object exist that mean Actual result equal Expected result
  29.   ActResult = proc.UIAObject("Display_is_"+ExpResult+"_").Exists;
  30.   p.Close();
  31.   if (!ActResult)
  32.   {
  33.     Log.Error("Test "+str+" FAILED!");
  34.     Runner.Stop();
  35.   }
  36.   Log.Checkpoint("Test Calculator function "+str+" Passed");
  37. }
  38.  
  39. function parseInputToClick(input)
  40. {
  41.     for (i = 0; i < input.length; i++)
  42.     {
  43.         sp = input.charAt(i);
  44.         button = buttonForClick(sp);
  45.         proc.UIAObject(button).Click();    
  46.     }
  47. }
  48.  
  49. function buttonForClick(sp)
  50. {
  51.     switch(sp)
  52.     {
  53.         case '1': return 'One'; break;
  54.         case '2': return 'Two'; break;
  55.         case '3': return 'Three'; break;
  56.         case '4': return 'Four'; break;
  57.         case '5': return 'Five'; break;
  58.         case '6': return 'Six'; break;
  59.         case '7': return 'Seven'; break;
  60.         case '8': return 'Eight'; break;
  61.         case '9': return 'Nine'; break;
  62.         case '0': return 'Zero'; break;
  63.     case '√': return 'Square_root'; break;
  64.     // TODO add other mathematicals symbols
  65.         default: return 'Clear_entry'; break;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment