diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8f62323c8462bace4cc680e2ff7b4da4bccb440d..5b79db23c6bdd42a0b71d73681dc526c35e8f975 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -4,6 +4,7 @@ set(TESTS
   averagedistanceassemblertest
   cosseratenergytest
   cosseratrodenergytest
+  embeddedglobalgfefunctiontest
   harmonicenergytest
   localgeodesicfefunctiontest
   localgfetestfunctiontest
diff --git a/test/embeddedglobalgfefunctiontest.cc b/test/embeddedglobalgfefunctiontest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ca9be8349b0879e38975e443a14ec7dfa78ba2d2
--- /dev/null
+++ b/test/embeddedglobalgfefunctiontest.cc
@@ -0,0 +1,51 @@
+// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+// vi: set et ts=4 sw=2 sts=2:
+
+#include "config.h"
+
+#include <dune/grid/yaspgrid.hh>
+
+#include <dune/functions/functionspacebases/lagrangebasis.hh>
+#include <dune/functions/gridfunctions/gridviewfunction.hh>
+
+#include <dune/gfe/embeddedglobalgfefunction.hh>
+#include <dune/gfe/localgeodesicfefunction.hh>
+#include <dune/gfe/localprojectedfefunction.hh>
+#include <dune/gfe/unitvector.hh>
+
+using namespace Dune;
+
+int main(int argc, char** argv)
+{
+  MPIHelper::instance(argc, argv);
+
+  // Make a test grid
+  const int dim = 2;
+  YaspGrid<dim> grid({1,1}, {5,5});
+
+  auto gridView = grid.leafGridView();
+
+  // Make a test basis
+  using namespace Functions::BasisFactory;
+  auto basis = Functions::BasisFactory::makeBasis(gridView, lagrange<2>());
+
+  // Make a test coefficient set
+  using TargetSpace = UnitVector<double,3>;
+
+  std::vector<TargetSpace> coefficients(basis.size());
+  std::fill(coefficients.begin(), coefficients.end(), FieldVector<double,3>({1,0,0}));
+
+  using GeodesicInterpolationRule  = LocalGeodesicFEFunction<dim, double, decltype(basis)::LocalView::Tree::FiniteElement, TargetSpace>;
+  GFE::EmbeddedGlobalGFEFunction<decltype(basis),GeodesicInterpolationRule,TargetSpace> testFunction(basis, coefficients);
+
+  // Evaluate the function at the element centers
+  auto localGFEFunction = localFunction(testFunction);
+  for (auto&& element : elements(gridView))
+  {
+    localGFEFunction.bind(element);
+    std::cout << localGFEFunction({0.5, 0.5}) << std::endl;
+  }
+
+  // Can we use EmbeddedGlobalGFEFunction within the type erasure wrapper?
+  auto typeErasure = Functions::makeGridViewFunction(testFunction, gridView);
+};