private void SendText() { toNumber = toNumber.replace("-", ""); toNumber = toNumber.replace("(", ""); toNumber = toNumber.replace(")", ""); toNumber = toNumber.replace(" ", ""); if (!isNumeric(toNumber) || toNumber.length() < 7) { setTextStatus(STATUS_NOT_VALID_PHONE_NUMBER); } try { if (textStatus == STATUS_NOT_SENT) { Voice voice = new Voice(username, password); voice.sendSMS( toNumber, kioskSettings .getLocaleSettings() .getLocaleString("SaveScreen", "TextMessageToSend", "Prompt") + " " + getTinyUrl(pageUrl)); setTextStatus(STATUS_SENT); } } catch (IOException e) { e.printStackTrace(); new ErrorLog(true, true, "Was unable to send text message.", 0x16); setTextStatus(STATUS_IO_EXCEPTION); kioskSettings .getKioskStatusModule() .setKioskStatus("I/O Exception when trying to text customer.", true); } }
/** * @param userName * @param pass * @param testNr */ private static void runTest(String userName, String pass, int testNr) { if (testNr == 0) { // 0: Exit System.out.println("Exiting."); System.exit(1); } try { // Voice voice = new Voice(); // try { if (connectOnStartup) System.out.println(voice.isLoggedIn()); // Thread.sleep(2000); switch (testNr) { case 1: // 1: Multi phone enable / disable System.out.println("******** Starting Test " + testNr + " ********"); Phone[] phones = voice.getSettings(false).getPhones(); // create int Array from all phone ids int[] phonesToChangeStatus = new int[phones.length]; System.out.println("Current phone status:"); for (int j = 0; j < phones.length; j++) { phonesToChangeStatus[j] = phones[j].getId(); System.out.println( phones[j].getName() + " " + phones[j].getId() + " " + !voice.getSettings(false).isPhoneDisabled(phones[j].getId())); } // Disable all phones for (int j = 0; j < phones.length; j++) { voice.phoneDisable(phones[j].getId()); } phones = voice.getSettings(true).getPhones(); // Output System.out.println("After deactivate multi:"); for (int j = 0; j < phones.length; j++) { System.out.println( phones[j].getName() + " " + phones[j].getId() + " " + !voice.getSettings(false).isPhoneDisabled(phones[j].getId())); } // Enable all phones for (int j = 0; j < phones.length; j++) { voice.phoneEnable(phones[j].getId()); } // Output phones = voice.getSettings(true).getPhones(); System.out.println("After activate multi:"); for (int j = 0; j < phones.length; j++) { System.out.println( phones[j].getName() + " " + phones[j].getId() + " " + !voice.getSettings(false).isPhoneDisabled(phones[j].getId())); } System.out.println("******** Finished Test " + testNr + " ********"); break; case 2: // 2: Inbox paging System.out.println("******** Starting Test " + testNr + " ********"); // Thread.sleep(2000); System.out.println(voice.getInboxPage(1000)); System.out.println("******** Finished Test " + testNr + " ********"); break; case 3: // 3: Call Announcement settings (Presentation) System.out.println("******** Starting Test " + testNr + " ********"); System.out.println("Type 'true' for enable, 'false' for disable"); boolean choice = false; try { choice = Boolean.parseBoolean(br.readLine()); } catch (Exception e) { System.out.println("Error trying to read the choice!" + e.getMessage()); System.exit(1); } // Thread.sleep(2000); System.out.println(voice.setCallPresentation(choice)); System.out.println("******** Finished Test " + testNr + " ********"); break; case 4: // 4: Caller ID in System.out.println("******** Starting Test " + testNr + " ********"); for (Iterator<Greeting> iterator = voice.getVoicemailList(true).iterator(); iterator.hasNext(); ) { Greeting type = (Greeting) iterator.next(); System.out.println(type.toString()); } System.out.println( "Choose the id of the voicemail greeting to use. ie '0' system standard or '1','2'"); String voicemailNr = "0"; try { voicemailNr = br.readLine(); } catch (Exception e) { System.out.println("Error trying to read the choice!" + e.getMessage()); System.exit(1); } // Thread.sleep(2000); voice.setVoicemailGreetingId(voicemailNr); System.out.println("******** Finished Test " + testNr + " ********"); break; case 5: // 5: Do not disturb System.out.println("******** Starting Test " + testNr + " ********"); System.out.println("Type 'true' for enable, 'false' for disable"); boolean dndChoice = false; try { dndChoice = Boolean.parseBoolean(br.readLine()); } catch (Exception e) { System.out.println("Error trying to read the choice!" + e.getMessage()); System.exit(1); } voice.setDoNotDisturb(dndChoice); System.out.println("******** Finished Test " + testNr + " ********"); break; case 6: // 6: Group settings System.out.println("******** Starting Test " + testNr + " ********"); Group[] groups1 = voice.getSettings(false).getSettings().getGroups(); String jsonGroups = ""; for (int i = 0; i < groups1.length; i++) { jsonGroups += groups1[i].toJson(); } System.out.println("All to json:" + jsonGroups); System.out.println("******** Finished Test " + testNr + " ********"); break; case 7: // 7: Read all settings - cached System.out.println("******** Starting Test " + testNr + " ********"); System.out.println(voice.getSettings(false).getSettings().toJson()); System.out.println("******** Finished Test " + testNr + " ********"); break; case 8: // 8: Read all settings - uncached System.out.println("******** Starting Test " + testNr + " ********"); System.out.println(voice.getSettings(true).getSettings().toJson()); System.out.println("******** Finished Test " + testNr + " ********"); break; case 9: // 9: Read all settings - pure json driven System.out.println("******** Starting Test " + testNr + " ********"); try { System.out.println("******** Original JSON Data ********"); JSONObject origSettings = new JSONObject(jsonData); System.out.println(origSettings.toString(4)); System.out.println("******* Parsed back and forth ******"); AllSettings settings2 = new AllSettings(jsonData); System.out.println(settings2.toJsonObject().toString(4)); System.out.println("******* Creating new AllSettings from old JSON ******"); AllSettings settings4 = new AllSettings(settings2.toJsonObject().toString()); System.out.println(settings4.toJsonObject().toString(4)); } catch (JSONException e) { System.out.println("Error displaying json:" + e.getLocalizedMessage()); e.printStackTrace(); } System.out.println("******** Finished Test " + testNr + " ********"); break; case 10: // 10: Read all settings - pure json driven - account data System.out.println("******** Starting Test " + testNr + " ********"); try { System.out.println("******** Original JSON Data ********"); String lJson = ParsingUtil.removeUninterestingParts( voice.getONLYFORTEST("https://www.google.com/voice/settings/tab/groups"), "<json><![CDATA[", "]]></json>", false); JSONObject origSettings = new JSONObject(lJson); System.out.println(origSettings.toString(4)); System.out.println("******* JsonObject from AllSettings ******"); AllSettings settings2 = new AllSettings(lJson); JSONObject objFromAllSettings = settings2.toJsonObject(); System.out.println(objFromAllSettings.toString(4)); System.out.println("******* Creating new AllSettings from old JSON ******"); AllSettings settings3 = new AllSettings(objFromAllSettings.toString()); System.out.println(settings3.toJsonObject().toString(4)); } catch (JSONException e) { System.out.println("Error displaying json:" + e.getLocalizedMessage()); e.printStackTrace(); } System.out.println("******** Finished Test " + testNr + " ********"); break; case 11: // 11: Update Group settings System.out.println("******** Starting Test " + testNr + " ********"); try { System.out.println("******** Before ********"); AllSettings settings2 = voice.getSettings(false); JSONObject objFromAllSettings = settings2.toJsonObject(); System.out.println(objFromAllSettings.toString(4)); System.out.println("Choose group to change settings (15)"); String groupId = "0"; try { groupId = br.readLine(); } catch (Exception e) { System.out.println("Error trying to read the choice!" + e.getMessage()); System.exit(1); } Group[] groups = voice.getSettings(false).getSettings().getGroups(); for (int j = 0; j < groups.length; j++) { /* New Settings "directConnect": true, "disabledForwardingIds": {"1": true}, "greetingId": 2, "id": "15", "isCustomDirectConnect": true, "isCustomForwarding": true, "isCustomGreeting": true, */ if (groups[j].getId().equals(groupId)) { System.out.println("Changing settings for Group: " + groups[j].getName()); groups[j].setCustomDirectConnect(true); groups[j].setDirectConnect(true); groups[j].setCustomForwarding(true); List<DisabledForwardingId> disList = new ArrayList<DisabledForwardingId>(); disList.add(new DisabledForwardingId("1", true)); groups[j].setDisabledForwardingIds(disList); groups[j].setCustomGreeting(true); groups[j].setGreetingId(2); voice.setNewGroupSettings(groups[j]); } } System.out.println("******** After ********"); AllSettings settings3 = voice.getSettings(true); System.out.println(settings3.toJsonObject().toString(4)); } catch (JSONException e) { System.out.println("Error displaying json:" + e.getLocalizedMessage()); e.printStackTrace(); } System.out.println("******** Finished Test " + testNr + " ********"); break; case 12: // 12: Group isPhoneEnabled Tests System.out.println("******** Starting Test " + testNr + " ********"); try { AllSettings settings3 = voice.getSettings(true); Group[] groups = settings3.getSettings().getGroups(); int[] phoneIds = settings3.getPhoneList(); for (int j = 0; j < groups.length; j++) { System.out.println("+++ Disabled Phones in " + groups[j].getName() + " +++"); for (int j2 = 0; j2 < phoneIds.length; j2++) { System.out.println(phoneIds[j2] + ":" + groups[j].isPhoneDisabled(phoneIds[j2])); } } } catch (JSONException e) { System.out.println("Error displaying json:" + e.getLocalizedMessage()); e.printStackTrace(); } System.out.println("******** Finished Test " + testNr + " ********"); break; case 13: // 13: List Default Phones and Enabled/Disabled Setting System.out.println("*********Starting Test " + testNr + " *******"); AllSettings settings3 = voice.getSettings(true); List<Integer> phoneList = settings3.getPhoneListAsList(); Phone[] actualPhoneArray = settings3.getPhones(); for (Integer phoneint : phoneList) { inner: for (int ig = 0; ig < actualPhoneArray.length; ig++) { if (actualPhoneArray[ig].getId() == phoneint) { System.out.println( actualPhoneArray[ig].getId() + " " + actualPhoneArray[ig].getName() + " enabled:" + !settings3.isPhoneDisabled(actualPhoneArray[ig].getId())); break inner; } } } // Group[] groupAr = settings3.getSettings().getGroups() // for(String group:groupAr){ // settings3.getSettings() // } // // // settings3.getSettings().getGroups()[0]. // } break; case 14: System.out.println("*********Starting Test " + testNr + " SEND SMS*******"); System.out.println("\n\rEnter Number to Send SMS:"); String number = br.readLine(); System.out.println("Enter Message:"); String txt = br.readLine(); voice.sendSMS(number, txt); break; case 15: // 15: Captcha Test System.out.println("*********Starting Test " + testNr + " *******"); System.out.println("Enter Fake Password:"******"\n\rAttempting new Login... " + counter++); try { voice = null; /* (Toby) added here the counter to the tempPass, so that we actually get the CaptchaEx - bc without * it I had 300 tries only getting the IO Error, with counter (each time a different password) * I got the captcha after 30 tries */ voice = new Voice( userName, tempPass + counter, "GoogleVoiceJavaUnitTests", true, Voice.GOOGLE); } catch (CaptchaRequiredException e) { System.out.println("Captcha found! - " + e.getLocalizedMessage()); System.out.println("Token: " + e.getCaptchaToken()); System.out.println("URL : " + e.getCaptchaUrl()); System.out.println("Please enter the captcha challenge response from the URL:"); String response = br.readLine(); // create the voice object with the response voice = new Voice( userName, pass, "GoogleVoiceJavaUnitTests", true, Voice.GOOGLE, response, e.getCaptchaToken()); tryAgain = false; } catch (IOException e) { System.out.println("IO error creating voice! - " + e.getLocalizedMessage()); // System.out.println("Try Again? (Y/N):"); // tryAgain = br.readLine().equalsIgnoreCase("Y"); // System.out.println(); } } // voice = null; // voice = new Voice(userName, // tempPass,"GoogleVoiceJavaUnitTests",true,Voice.GOOGLE); System.out.println(""); break; case 16: System.out.println("*********Starting Test " + testNr + " LIST SMS *******"); String smsString = voice.getSMS(); // remove whitespaces // StringTokenizer st = new StringTokenizer(smsString," ",false); // String t=""; // while (st.hasMoreElements()) t += st.nextElement(); // remove newLine StringTokenizer st2 = new StringTokenizer(smsString, "\n", false); String t2 = ""; while (st2.hasMoreElements()) t2 += st2.nextElement(); System.out.println(t2); break; default: System.out.println("Test " + testNr + " not found, exiting."); System.exit(1); break; } // Thread.sleep(2000); // System.out.println(voice.getSMS()); // System.out.println(voice.getInbox()); // System.out.println(voice.getInboxPage(1000)); // System.out.println(voice.getInboxPage(100)); /* System.out.println(voice.getInbox()); Thread.sleep(2000); System.out.println(voice.phoneDisable(6)); System.out.println(voice.getInbox()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getMissed()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getPlaced()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getReceived()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println("**********************************"); System.out.println(voice.getRecorded()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getSMS()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getSpam()); Thread.sleep(2000); System.out.println("**********************************"); System.out.println(voice.getStarred()); Thread.sleep(2000); System.out.println("**********************************"); */ // } catch (InterruptedException e) { // e.printStackTrace(); // } } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } listTests(); // List the Tests again }