/* * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
@DataProvider(name = "LRParseData")
Object[][] LRParseData() { returnnew Object[][] { // Ranges, Expected result
{"Accept-Language: fr-FX, de-DE;q=0.5, fr-tp-x-FOO;q=0.1, "
+ "en-X-tp;q=0.6, en-FR;q=0.7, de-de;q=0.8, iw;q=0.4, "
+ "he;q=0.4, de-de;q=0.5, ja, in-tpp, in-tp;q=0.2",
List.of(new LanguageRange("fr-fx", 1.0), new LanguageRange("fr-fr", 1.0), new LanguageRange("ja", 1.0), new LanguageRange("in-tpp", 1.0), new LanguageRange("id-tpp", 1.0), new LanguageRange("en-fr", 0.7), new LanguageRange("en-fx", 0.7), new LanguageRange("en-x-tp", 0.6), new LanguageRange("de-de", 0.5), new LanguageRange("de-dd", 0.5), new LanguageRange("iw", 0.4), new LanguageRange("he", 0.4), new LanguageRange("in-tp", 0.2), new LanguageRange("id-tl", 0.2), new LanguageRange("id-tp", 0.2), new LanguageRange("in-tl", 0.2), new LanguageRange("fr-tp-x-foo", 0.1), new LanguageRange("fr-tl-x-foo", 0.1))},
{"Accept-Language: hak-CN;q=0.8, no-bok-NO;q=0.9, no-nyn, cmn-CN;q=0.1",
List.of(new LanguageRange("no-nyn", 1.0), new LanguageRange("nn", 1.0), new LanguageRange("no-bok-no", 0.9), new LanguageRange("nb-no", 0.9), new LanguageRange("hak-CN", 0.8), new LanguageRange("zh-hakka-CN", 0.8), new LanguageRange("i-hak-CN", 0.8), new LanguageRange("zh-hak-CN", 0.8), new LanguageRange("cmn-CN", 0.1), new LanguageRange("zh-guoyu-CN", 0.1), new LanguageRange("zh-cmn-CN", 0.1))},
{"Accept-Language: rki;q=0.4, no-bok-NO;q=0.9, ccq;q=0.5",
List.of(new LanguageRange("no-bok-no", 0.9), new LanguageRange("nb-no", 0.9), new LanguageRange("rki", 0.4), new LanguageRange("ybd", 0.4), new LanguageRange("ccq", 0.4))},
};
}
@Test publicvoid testLRConstants() {
assertEquals(MIN_WEIGHT, 0.0, " MIN_WEIGHT should be 0.0 but got "
+ MIN_WEIGHT);
assertEquals(MAX_WEIGHT, 1.0, " MAX_WEIGHT should be 1.0 but got "
+ MAX_WEIGHT);
}
@Test(dataProvider = "LRConstructorData") publicvoid testLRConstructors(String range, double weight) {
LanguageRange lr; if (weight == MAX_WEIGHT) {
lr = new LanguageRange(range);
} else {
lr = new LanguageRange(range, weight);
}
assertEquals(lr.getRange(), range.toLowerCase(Locale.ROOT), " LR.getRange() returned unexpected value. Expected: "
+ range.toLowerCase(Locale.ROOT) + ", got: " + lr.getRange());
assertEquals(lr.getWeight(), weight, " LR.getWeight() returned unexpected value. Expected: "
+ weight + ", got: " + lr.getWeight());
}
@Test(dataProvider = "LRConstructorNPEData", expectedExceptions = NullPointerException.class) publicvoid testLRConstructorNPE(String range, double weight) { if (weight == MAX_WEIGHT) { new LanguageRange(range);
} else { new LanguageRange(range, weight);
}
}
@Test(dataProvider = "LRConstructorIAEData", expectedExceptions = IllegalArgumentException.class) publicvoid testLRConstructorIAE(String range, double weight) { if (weight == MAX_WEIGHT) { new LanguageRange(range);
} else { new LanguageRange(range, weight);
}
}
@Test publicvoid testLREquals() {
LanguageRange lr1 = new LanguageRange("ja", 1.0);
LanguageRange lr2 = new LanguageRange("ja");
LanguageRange lr3 = new LanguageRange("ja", 0.1);
LanguageRange lr4 = new LanguageRange("en", 1.0);
assertEquals(lr1, lr2, " LR(ja, 1.0).equals(LR(ja)) should return true.");
assertNotEquals(lr1, lr3, " LR(ja, 1.0).equals(LR(ja, 0.1)) should return false.");
assertNotEquals(lr1, lr4, " LR(ja, 1.0).equals(LR(en, 1.0)) should return false.");
assertNotNull(lr1, " LR(ja, 1.0).equals(null) should return false.");
assertNotEquals(lr1, "", " LR(ja, 1.0).equals(\"\") should return false.");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.