#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test of Glade 2 support for msgctxt.

cat <<EOF > xg-gl-5-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5.pot xg-gl-5-empty.glade 2>/dev/null
test $? = 0 || {
  echo "Skipping test: xgettext was built without Glade support"
  Exit 77
}

cat <<EOF > xg-gl-5.glade
<?xml version="1.0"?>
<glade-interface>
  <!-- interface-requires gtk+ 2.8 -->
  <!-- interface-naming-policy project-wide -->
  <widget class="GtkWindow" id="window1">
    <child>
      <widget class="GtkVBox" id="vbox">
        <property name="visible">True</property>
        <property name="orientation">vertical</property>
        <child>
          <widget class="GtkButton" id="with_context">
            <property name="label" translatable="yes" context="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <widget class="GtkButton" id="without_context">
            <property name="label" translatable="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5.tmp xg-gl-5.glade || Exit 1
func_filter_POT_Creation_Date xg-gl-5.tmp xg-gl-5.pot

cat <<\EOF > xg-gl-5.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: xg-gl-5.glade:12
msgctxt "Shape"
msgid "Form"
msgstr ""

#: xg-gl-5.glade:23
msgid "Shape|Form"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-gl-5.ok xg-gl-5.pot
result=$?

test $result = 0 || {
  exit $result
}

# Check with --extract-all option
rm xg-gl-5.tmp
${XGETTEXT} -a -o xg-gl-5.tmp xg-gl-5.glade || Exit 1
func_filter_POT_Creation_Date xg-gl-5.tmp xg-gl-5.pot

${DIFF} xg-gl-5.ok xg-gl-5.pot
result=$?

test $result = 0 || {
  exit $result
}

cat <<EOF > xg-gl-5b.glade
<?xml version="1.0"?>
<glade-interface>
  <!-- interface-requires gtk+ 2.8 -->
  <!-- interface-naming-policy project-wide -->
  <widget class="GtkWindow" id="window1">
    <child>
      <widget class="GtkVBox" id="vbox">
        <property name="visible">True</property>
        <property name="orientation">vertical</property>
        <child>
          <widget class="GtkButton" id="with_context">
            <property name="label" translatable="yes" context="yes">ShapeForm</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <widget class="GtkButton" id="without_context">
            <property name="label" translatable="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5b.tmp xg-gl-5b.glade 2>/dev/null || Exit 1
func_filter_POT_Creation_Date xg-gl-5b.tmp xg-gl-5b.pot

cat <<\EOF > xg-gl-5b.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: xg-gl-5b.glade:23
msgid "Shape|Form"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-gl-5b.ok xg-gl-5b.pot
result=$?

exit $result
