/** * Tests GadgetFeatureRegistry->getIncludedFeatures() */ public function testGetIncludedFeatures() { $needed = array('flash', 'opensocial-0.8', 'settitle', 'setprefs', 'foobar'); $resultsFound = array(); $resultsMissing = array(); $this->GadgetFeatureRegistry->getIncludedFeatures($needed, $resultsFound, $resultsMissing); $this->assertTrue(in_array('foobar', $resultsMissing)); $this->assertTrue(in_array('settitle', $resultsFound)); $this->assertTrue(in_array('setprefs', $resultsFound)); $this->assertTrue(in_array('rpc', $resultsFound)); $this->assertTrue(in_array('flash', $resultsFound)); $this->assertTrue(in_array('core', $resultsFound)); $this->assertTrue(in_array('core.io', $resultsFound)); $this->assertTrue(in_array('opensocial-0.8', $resultsFound)); }
public function doGet() { $this->noHeaders = true; if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { header("HTTP/1.1 304 Not Modified"); header('Content-Length: 0'); ob_end_clean(); die; } $uri = strtolower($_SERVER["REQUEST_URI"]); $uri = substr($uri, strrpos($uri, '/') + 1); // remove any params that would confuse our parser if (strpos($uri, '?')) { $uri = substr($uri, 0, strpos($uri, '?')); } if (strpos($uri, '.js') !== false) { $uri = substr($uri, 0, strlen($uri) - 3); } $needed = array(); if (strpos($uri, ':')) { $needed = explode(':', $uri); } else { $needed[] = $uri; } $found = array(); $missing = array(); $contextClass = Shindig_Config::get('gadget_context_class'); $context = new $contextClass('GADGET'); $registry = new GadgetFeatureRegistry(Shindig_Config::get('features_path')); if ($registry->resolveFeatures($needed, $found, $missing)) { $isGadgetContext = !isset($_GET["c"]) || $_GET['c'] == 0 ? true : false; $jsData = ''; foreach ($found as $feature) { $jsData .= $registry->getFeatureContent($feature, $context, $isGadgetContext); } if (!strlen($jsData)) { header("HTTP/1.0 404 Not Found", true); die; } $this->setCachingHeaders(); header("Content-Type: text/javascript"); echo $jsData; } else { header("HTTP/1.0 404 Not Found", true); } die; }
public function doGet() { $this->noHeaders = true; if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { header("HTTP/1.1 304 Not Modified"); header('Content-Length: 0'); ob_end_clean(); die; } $uri = strtolower($_SERVER["REQUEST_URI"]); $uri = substr($uri, strrpos($uri, '/') + 1); // remove any params that would confuse our parser if (strpos($uri, '?')) { $uri = substr($uri, 0, strpos($uri, '?')); } if (strpos($uri, '.js') !== false) { $uri = substr($uri, 0, strlen($uri) - 3); } $needed = array(); if (strpos($uri, ':')) { $needed = explode(':', $uri); } else { $needed[] = $uri; } $found = array(); $missing = array(); $registry = new GadgetFeatureRegistry(Config::get('features_path')); if ($registry->getIncludedFeatures($needed, $found, $missing)) { $containerParam = isset($_GET["c"]) ? $_GET["c"] : ''; $context = $containerParam == '1' ? 'CONTAINER' : 'GADGET'; $jsData = ''; $done = array(); do { foreach ($found as $entry) { if (!in_array($entry, $done)) { $feat = $registry->getEntry($entry); $feature = $feat->getFeature(); if ($feature instanceof JsLibraryFeatureFactory) { $jsLib = $feature; foreach ($jsLib->getLibraries($context) as $lib) { if ($lib->getType() != 'URL') { $jsData .= $lib->getContent() . "\n"; } } } $done[] = $entry; } } } while (count($done) != count($found)); if (!strlen($jsData)) { header("HTTP/1.0 404 Not Found", true); die; } $this->setCachingHeaders(); header("Content-Type: text/javascript"); echo $jsData; } else { header("HTTP/1.0 404 Not Found", true); } die; }
public function doGet() { error_log("Running the JsServlet"); $this->noHeaders = true; if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { header("HTTP/1.1 304 Not Modified"); header('Content-Length: 0'); die; } $uri = strtolower($_SERVER["REQUEST_URI"]); $uri = substr($uri, strrpos($uri, '/') + 1); // remove any params that would confuse our parser if (strpos($uri, '?')) { $uri = substr($uri, 0, strpos($uri, '?')); } if (strpos($uri, '.js') !== false) { $uri = substr($uri, 0, strlen($uri) - 3); } $needed = array(); if (strpos($uri, ':')) { $needed = explode(':', $uri); } else { $needed[] = $uri; } $found = array(); $missing = array(); $registry = new GadgetFeatureRegistry(Config::get('features_path')); if ($registry->getIncludedFeatures($needed, $found, $missing)) { $containerParam = isset($_GET["c"]) ? $_GET["c"] : ''; $context = $containerParam == '1' ? 'CONTAINER' : 'GADGET'; $jsData = ''; $done = array(); do { foreach ($found as $entry) { if (!in_array($entry, $done)) { $feat = $registry->getEntry($entry); $feature = $feat->getFeature(); if ($feature instanceof JsLibraryFeatureFactory) { $jsLib = $feature; foreach ($jsLib->getLibraries($context) as $lib) { if ($lib->getType() != 'URL') { $jsData .= $lib->getContent(); } } } $done[] = $entry; } } } while (count($done) != count($found)); if (!strlen($jsData)) { header("HTTP/1.0 404 Not Found", true); die; } if (!isset($_GET['c']) || $_GET['c'] != 1) { $contents = preg_replace('/\\/\\/.*$/m', '', preg_replace('@/\\*(?:.|[\\n\\r])*?\\*/@', '', file_get_contents(Config::get('container_config')))); $containerData = json_decode($contents, true); $jsData .= "\ngadgets.config.init(" . json_encode($containerData['gadgets.features']) . ");\n"; } $this->setCachingHeaders(); header('Content-Length: ' . strlen($jsData)); header("Content-Type: text/javascript"); echo $jsData; } else { header("HTTP/1.0 404 Not Found", true); } die; }
/** * Tests GadgetFeatureRegistry->__construct() */ public function test__construct() { $this->GadgetFeatureRegistry->__construct(Config::get('features_path')); }