public static void CheckArticleLanguage(string arTitle) { string osLanguage = Utils.GetOSLanguage().Name.ToLower(); // check language DivTag body = Host.Local.FindSingle <DivTag>(@"/dom//div[#'ArticleBody']", 5000); string articleText = StripHTML(body.GetInnerHtml()); Dictionary <string, float> detectedLanguages = null; string osLanguageCode = osLanguage.Substring(0, 2); string[] lines = Regex.Split(articleText, @"(\n)+"); bool inOSLang = true; //int i = 0; foreach (string line in lines) { if (line.Trim() == "" || line.Trim() == @"\n") { continue; } //if(i++ > 20){ // break; //} detectedLanguages = Utils.InWhichLanguages(line.Trim()); if (detectedLanguages.Count > 0 && !detectedLanguages.ContainsKey(osLanguageCode)) { string detectedLanguageNames = ""; foreach (string key in detectedLanguages.Keys) { string lang = (new CultureInfo(key)).DisplayName; detectedLanguageNames += "[" + lang + ", confident:" + detectedLanguages[key] + "], "; } inOSLang = false; Report.Log(ReportLevel.Failure, "Detected Article with title {" + arTitle + "} contains string not in Expected language: {" + Utils.GetOSLanguage().DisplayName + "}, " + "but in following languages: {" + detectedLanguageNames + "} " + "Refer string: " + line); } } if (inOSLang == true) { Report.Log(ReportLevel.Success, "Article with title {" + arTitle + "} is in Expected language: {" + Utils.GetOSLanguage().DisplayName + "}"); } }
public void CheckLanguageText() { string osLanguage = Utils.GetOSLanguage().Name.ToLower(); // check language DivTag body = Host.Local.FindSingle <DivTag>(@"/dom[@domain='collect.iperceptions.com']//div[@id='QtnId-All']", 60000); string text = StripHTML(body.GetInnerHtml()); Dictionary <string, float> detectedLanguages = null; string osLanguageCode = osLanguage.Substring(0, 2); string languageScope = "en - zh - pt - ja - fr - es - de"; string expectedLanguage = osLanguageCode; if (!languageScope.Contains(osLanguageCode)) { expectedLanguage = "en"; } string expectedLanguageName = (new CultureInfo(expectedLanguage)).DisplayName; Regex rgx = new Regex(@"[\t]"); string result = rgx.Replace(text, " "); string[] lines = Regex.Split(result, @"(\n)+"); bool inOSLang = true; foreach (string line in lines) { if (line.Trim() == "" || line.Trim() == @"\n") { continue; } detectedLanguages = Utils.InWhichLanguages(line.Trim()); if (detectedLanguages.Count > 0 && !detectedLanguages.ContainsKey(expectedLanguage)) { string detectedLanguageNames = ""; foreach (string key in detectedLanguages.Keys) { string lang = (new CultureInfo(key)).DisplayName; detectedLanguageNames += "[" + lang + ", confident:" + detectedLanguages[key] + "], "; } inOSLang = false; Report.Log(ReportLevel.Failure, "Detected on the Feed Back page contains string not in Scope language: {" + expectedLanguageName + "}, " + "but in following languages: {" + detectedLanguageNames + "} " + "Refer string: " + line); } /* * else{ * Report.Log(ReportLevel.Success, * "Detected on the Feed Back page contains string in Scope language: {" + expectedLanguageName +"}, " + * "Refer string: " + line); * }*/ } if (inOSLang == true) { Report.Log(ReportLevel.Success, "The Feed Back Page is in Expected language: {" + expectedLanguageName + "}"); } }