encoding/textpb: fix handling of group field name

Group field name in textproto should be the type name.  Its field name
is derived from lowercasing its type name.

Change-Id: Ia12aafe934d3a59f3e07d09fe7939cfa6595a7b8
Reviewed-on: https://go-review.googlesource.com/c/157821
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index fbbdd0f..57a35c6 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -153,6 +153,10 @@
 		if !nerr.Merge(err) {
 			return msgFields, err
 		}
+		// Use type name for group field name.
+		if fd.Kind() == pref.GroupKind {
+			tname = text.ValueOf(fd.MessageType().Name())
+		}
 		msgFields = append(msgFields, [2]text.Value{tname, tval})
 	}