@@ -2282,6 +2282,42 @@ JSONTEST_FIXTURE(IteratorTest, distance) {
22822282 JSONTEST_ASSERT_STRING_EQUAL (" b" , str);
22832283}
22842284
2285+ JSONTEST_FIXTURE (IteratorTest, names) {
2286+ Json::Value json;
2287+ json[" k1" ] = " a" ;
2288+ json[" k2" ] = " b" ;
2289+ Json::ValueIterator it = json.begin ();
2290+ JSONTEST_ASSERT (it != json.end ());
2291+ JSONTEST_ASSERT_EQUAL (Json::Value (" k1" ), it.key ());
2292+ JSONTEST_ASSERT_STRING_EQUAL (" k1" , it.name ());
2293+ JSONTEST_ASSERT_EQUAL (-1 , it.index ());
2294+ ++it;
2295+ JSONTEST_ASSERT (it != json.end ());
2296+ JSONTEST_ASSERT_EQUAL (Json::Value (" k2" ), it.key ());
2297+ JSONTEST_ASSERT_STRING_EQUAL (" k2" , it.name ());
2298+ JSONTEST_ASSERT_EQUAL (-1 , it.index ());
2299+ ++it;
2300+ JSONTEST_ASSERT (it == json.end ());
2301+ }
2302+
2303+ JSONTEST_FIXTURE (IteratorTest, indexes) {
2304+ Json::Value json;
2305+ json[0 ] = " a" ;
2306+ json[1 ] = " b" ;
2307+ Json::ValueIterator it = json.begin ();
2308+ JSONTEST_ASSERT (it != json.end ());
2309+ JSONTEST_ASSERT_EQUAL (Json::Value (Json::ArrayIndex (0 )), it.key ());
2310+ JSONTEST_ASSERT_STRING_EQUAL (" " , it.name ());
2311+ JSONTEST_ASSERT_EQUAL (0 , it.index ());
2312+ ++it;
2313+ JSONTEST_ASSERT (it != json.end ());
2314+ JSONTEST_ASSERT_EQUAL (Json::Value (Json::ArrayIndex (1 )), it.key ());
2315+ JSONTEST_ASSERT_STRING_EQUAL (" " , it.name ());
2316+ JSONTEST_ASSERT_EQUAL (1 , it.index ());
2317+ ++it;
2318+ JSONTEST_ASSERT (it == json.end ());
2319+ }
2320+
22852321int main (int argc, const char * argv[]) {
22862322 JsonTest::Runner runner;
22872323 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, checkNormalizeFloatingPointStr);
@@ -2346,6 +2382,8 @@ int main(int argc, const char* argv[]) {
23462382 JSONTEST_REGISTER_FIXTURE (runner, BuilderTest, settings);
23472383
23482384 JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, distance);
2385+ JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, names);
2386+ JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, indexes);
23492387
23502388 return runner.runCommandLine (argc, argv);
23512389}
0 commit comments