public String getRecord(String tableName, int recordId) {

    Iterator<Table> it = Tables.iterator();
    int pageID = -2;
    Pages P = null;

    while (it.hasNext()) {
      Table T = it.next();
      if (T.getTableName().equals(tableName)) {
        pageID = T.getPageId(recordId);
        break;
      }
    }

    if (pageID == -1) {
      System.out.println("Invalid Record Request");
      return null;
    } else if (pageID == -2) {
      System.out.println("Invalid Table Name");
      return null;
    } else {
      P = MM.getPage(pageID, tableName, 0);
      return P.getRecFromId(recordId);
    }
  }
  @Test(expected = WrongPageError.class)
  public void
      the_pages_object_throws_a_wrong_page_error_when_the_page_object_doesnt_have_a_webdriver_constructor() {

    when(driver.getCurrentUrl()).thenReturn("http://www.google.com");
    final Pages pages = new Pages(driver, configuration);
    pages.currentPageAt(PageObjectWithNoDriverConstructor.class);
  }
  @Test
  public void should_open_initial_page_when_driver_opens() {
    Pages pages = new Pages(driver, configuration);
    pages.setDefaultBaseUrl("http://www.google.com");
    pages.notifyWhenDriverOpens();

    verify(driver).get("http://www.google.com");
  }
  @Test
  public void should_not_open_initial_page_when_driver_opens_if_using_a_proxied_driver() {
    Pages pages = new Pages(driverProxy);
    pages.setDefaultBaseUrl("http://www.google.com");
    pages.notifyWhenDriverOpens();

    verify(driver, never()).get("http://www.google.com");
  }
  @Test(expected = WrongPageError.class)
  public void the_pages_object_throws_a_wrong_page_error_when_the_page_object_is_invalid() {

    when(driver.getCurrentUrl()).thenReturn("http://www.google.com");
    final Pages pages = new Pages(driver, configuration);
    pages.start();

    pages.currentPageAt(InvalidHomePage.class);
  }
  @Test
  public void the_pages_object_knows_when_we_are_not_on_the_right_page() {

    when(driver.getCurrentUrl()).thenReturn("http://www.google.org");
    final Pages pages = new Pages(driver, configuration);
    pages.start();

    assertThat(pages.isCurrentPageAt(ApacheHomePage.class), is(false));
  }
  @Test
  public void should_be_able_to_retrieve_the_current_page_as_an_instance_of_AnyPage() {

    when(driver.getCurrentUrl()).thenReturn("http://www.apache.org");
    final Pages pages = new Pages(driver, configuration);
    pages.start();

    AnyPage currentPage = pages.getAt(AnyPage.class);
    assertThat(currentPage, is(not(nullValue())));
  }
  @Test
  public void the_getAt_method_is_Groovy_shorthand_for_currentPageAt() {

    when(driver.getCurrentUrl()).thenReturn("http://www.apache.org");
    final Pages pages = new Pages(driver, configuration);
    pages.start();

    assertThat(
        pages.getAt(ApacheHomePage.class).getClass().getName(), is(ApacheHomePage.class.getName()));
  }
  @Test
  public void should_requery_driver_for_each_page_request() {
    when(driver.getCurrentUrl()).thenReturn("http://www.google.com");
    Pages pages = new Pages(driver, configuration);
    pages.setDefaultBaseUrl("http://www.google.com");

    GooglePage page1 = pages.get(GooglePage.class);
    GooglePage page2 = pages.get(GooglePage.class);
    assertThat(page2, is(not(page1)));
  }
  public void insertRecord(String tableName, String record) {

    Iterator<Table> it = Tables.iterator();
    TableList TL = null;
    Pages P = null;
    Table T = null;

    while (it.hasNext()) {
      T = it.next();
      if (T.getTableName().equals(tableName)) {
        TL = T.getLastPage();
        break;
      }
    }

    if (record.length() < TL.getAvailableSpace()) {
      P = MM.getPage(TL.getPageId(), tableName, 1);
      P.insertRec(record);
      T.updatePage(P);
      TL.setEndId(P.getEndId());
      TL.setAvailableSpace(P.getAvailableSpace());
    } else {
      P = new Pages(TL.getEndId() + 1, pageSize, TL.getPageId() + 1);
      P.insertRec(record);
      TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace());
      P = MM.getPage(TL.getPageId(), tableName, 1);
      T.insertPage(P);
      T.insertTableList(TL);
    }
  }
  @Test
  public void should_use_the_same_page_object_if_we_indicate_that_are_on_the_same_unchanged_page() {
    when(driver.getCurrentUrl()).thenReturn("http://www.google.com");
    Pages pages = new Pages(driver, configuration);
    pages.setDefaultBaseUrl("http://www.google.com");

    GooglePage page1 = pages.get(GooglePage.class);
    pages.onSamePage();
    GooglePage page2 = pages.get(GooglePage.class);
    assertThat(page2, is(page1));
  }
  @Test
  public void the_pages_object_should_have_a_default_starting_point_url() {

    final String baseUrl = "http://www.google.com";
    final Pages pages = new Pages(driver, configuration);

    pages.setDefaultBaseUrl(baseUrl);

    pages.start();

    verify(driver).get(baseUrl);
  }
  // Change the page
  // Update Webview, Toolbar, Refresh button...
  void changePage(Pages newPage) {
    actual = newPage;

    // Handle tabs
    tabs.removeAllTabs();
    if (newPage.tabs != null && newPage.tabs.contains("||")) {
      showTabs();
      for (String s : newPage.tabs.split("\\|\\|")) {
        tabs.addTab(tabs.newTab().setText(s));
      }
      if (newPage.url != null) {
        newPage.actualURL = newPage.url.split("\\|\\|")[0];
      }
      if (newPage.localPage != null) {
        newPage.actualAlternativeURL = newPage.localPage.split("\\|\\|")[0];
      }

      // There are no tabs...
    } else {
      hideTabs();
      newPage.actualURL = newPage.url;
      newPage.actualAlternativeURL = newPage.localPage;
    }

    // Enable JS for the webview
    webView.getSettings().setJavaScriptEnabled(true);

    // Load URL to the webview...
    if (newPage.url != null) {
      webView.loadUrl(newPage.actualURL);
    } else {
      if (newPage.localPage != null) // ...Or use local page
      webView.loadUrl("file:///android_asset/" + newPage.actualAlternativeURL);
    }

    // Update Toolbar and Statusbar
    toolbar.setBackgroundColor(newPage.actionBarColor.value);
    drawerLayout.setBackgroundColor(newPage.actionBarColor.value);
    drawerLayout.closeDrawers();
    toolbar.setTitle(newPage.title);

    // Show refresh button
    if (refreshButton != null) {
      if (newPage.refreshButton) {
        refreshButton.setVisible(true);
      } else {
        refreshButton.setVisible(false);
      }
    }

    actual = newPage;
  }
  @Test
  public void the_default_starting_point_url_can_be_overriden_by_a_system_property() {

    final String systemDefinedBaseUrl = "http://www.google.com.au";

    Configuration Configuration = new SystemPropertiesConfiguration(environmentVariables);
    final Pages pages = new Pages(driver, Configuration);

    environmentVariables.setProperty("webdriver.base.url", systemDefinedBaseUrl);

    pages.start();

    verify(driver).get(systemDefinedBaseUrl);
  }
  @Test
  public void the_default_starting_point_url_can_refer_to_a_file_on_the_classpath() {

    final String baseUrl = "classpath:static-site/index.html";
    final Pages pages = new Pages(driver, configuration);
    pages.setDefaultBaseUrl(baseUrl);

    URL staticSiteUrl =
        Thread.currentThread().getContextClassLoader().getResource("static-site/index.html");

    pages.start();

    verify(driver).get(staticSiteUrl.toString());
  }
  @Test
  public void should_register_proxy_drivers_when_driver_opens() {
    Pages pages =
        new Pages(driverProxy) {
          @Override
          protected WebdriverProxyFactory getProxyFactory() {
            return proxyFactory;
          }
        };
    pages.setDefaultBaseUrl("http://www.google.com");
    pages.notifyWhenDriverOpens();

    verify(proxyFactory).registerListener(any(PagesEventListener.class));
  }
Beispiel #17
0
  private void selectPage(RequestInfo requestInfo) {
    String path = requestInfo.getPath();
    if (path.equals("/hello")) {
      sleep();
      requestInfo.writeResponse(Pages.getHelloPage());
    } else if (path.equals("/status")) {
      requestInfo.writeResponse(Pages.getStatisticsPage());
    } else if (path.equals("/redirect") && requestInfo.getUrl() != null) {

      requestInfo.redirect(requestInfo.getUrl());
    } else {
      requestInfo.writeResponse(Pages.getNotFoundPage());
    }
  }
  // Handle menu-clicks
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {

    // Share
    if (item.getTitle().toString().equals(getString(R.string.share))) {
      Intent sharingIntent = new Intent(Intent.ACTION_SEND);
      sharingIntent.setType("text/plain");
      sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Pages.values()[0].shareText);
      sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
      startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_using)));
      return super.onOptionsItemSelected(item);
    }

    // Refresh
    if (item.getTitle().toString().equals(getString(R.string.refresh))) {
      if (actual.url != null) {
        System.out.println(actual.url);
        webView.reload();
        webView.loadUrl(actual.url);
      }
      return super.onOptionsItemSelected(item);
    }

    // Page
    for (Pages p : Pages.values()) {
      if (p.title.equals(item.getTitle().toString())) {
        if (p.url.contains("http:") || p.url.contains("http:")) {
          changePage(p);
        } else {

          // Handle special Intents (e.g. for mailto: in the menu)

          Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(p.url));
          PackageManager manager = getPackageManager();
          List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
          if (infos.size() > 0) {
            startActivity(intent);
          }
        }
      }
    }
    return super.onOptionsItemSelected(item);
  }
  // Create OptionsMenu
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {

    // Create the menu
    getMenuInflater().inflate(R.menu.main, menu);

    // Add pages to the menu
    for (Pages p : Pages.values()) {
      if (p.menu != false) menu.add(p.title);
    }

    // Refresh button
    refreshButton = menu.add(R.string.refresh);
    if (actual.useWhiteFont) {
      refreshButton.setIcon(R.drawable.ic_autorenew_white_36dp);
    } else {
      refreshButton.setIcon(R.drawable.ic_autorenew_black_36dp);
    }
    refreshButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    // Share button
    if (Pages.values()[0].share) {
      MenuItem shareItem = menu.add(getString(R.string.share));
      if (actual.shareAsAction) {
        if (actual.useWhiteFont) shareItem.setIcon(R.drawable.ic_share_white_36dp);
        else shareItem.setIcon(R.drawable.ic_share_black_36dp);
        shareItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
      }
    }

    // Show/hide refresh button for the first page
    if (actual != null) {
      if (actual.refreshButton) {
        refreshButton.setVisible(true);
      } else {
        refreshButton.setVisible(false);
      }
    }
    return true;
  }
  @Override
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (args.length > 0) {
      String name = (sender instanceof Player ? sender.getName() : null);

      boolean next = args[0].equalsIgnoreCase("next");

      if (next || args[0].equalsIgnoreCase("prev")) {
        Pages pages = pagination.get(name);

        if (pages != null) {
          if (next ? pages.hasNext() : pages.hasPrev()) {
            String page = (next ? pages.next() : pages.prev());
            Messages.CMD_RECIPES_HEADER.print(
                sender,
                null,
                "{item}",
                Tools.Item.print(pages.item),
                "{num}",
                (pages.page + 1),
                "{total}",
                pages.pages.length);
            Messages.send(sender, page);

            if (pages.hasNext()) {
              Messages.CMD_RECIPES_MORE.print(
                  sender,
                  null,
                  "{cmdnext}",
                  "/" + label + " next",
                  "{cmdprev}",
                  "/" + label + " prev");
            } else {
              Messages.CMD_RECIPES_END.print(sender);
            }
          } else {
            if (next) {
              Messages.CMD_RECIPES_NONEXT.print(sender, null, "{command}", "/" + label + " prev");
            } else {
              Messages.CMD_RECIPES_NOPREV.print(sender, null, "{command}", "/" + label + " next");
            }
          }
        } else {
          Messages.CMD_RECIPES_NEEDQUERY.print(sender);
        }
      } else {
        ItemStack item;

        if (args[0].equalsIgnoreCase("this")) {
          if (sender instanceof Player) {
            Player player = (Player) sender;
            item = player.getItemInHand();

            if (item == null) {
              Messages.CMD_RECIPES_NOHAND.print(sender);
              return true;
            }
          } else {
            sender.sendMessage("The 'this' argument can't be used from console.");
            return true;
          }
        } else {
          item =
              Tools.parseItem(args[0], Vanilla.DATA_WILDCARD, ParseBit.NO_META | ParseBit.NO_PRINT);

          if (item == null) {
            Messages.CMD_RECIPES_INVALIDITEM.print(sender, null, "{arg}", args[0]);
            return true;
          }
        }

        boolean ingredient = (args.length > 1 && args[1].charAt(0) == 'i');

        List<String> list = new ArrayList<String>();

        for (Entry<BaseRecipe, RecipeInfo> e :
            RecipeManager.getRecipes().getRecipeList().entrySet()) {
          BaseRecipe recipe = e.getKey();

          if (hasItem(recipe, item, ingredient)) {
            list.add(recipe.printChat());
          }
        }

        if (!list.isEmpty()) {
          Pages pages = new Pages(name, item, list);
          pagination.put(name, pages);

          Messages.CMD_RECIPES_HEADER.print(
              sender,
              null,
              "{item}",
              Tools.Item.print(pages.item),
              "{num}",
              1,
              "{total}",
              pages.pages.length);
          Messages.send(sender, pages.next());

          if (pages.hasNext()) {
            Messages.CMD_RECIPES_MORE.print(
                sender,
                null,
                "{cmdnext}",
                "/" + label + " next",
                "{cmdprev}",
                "/" + label + " prev");
          } else {
            Messages.CMD_RECIPES_END.print(sender);
          }
        } else {
          Messages.CMD_RECIPES_NORESULTS.print(sender, null, "{item}", Tools.Item.print(item));
        }
      }
    } else {
      int mc = 0;
      int rm = 0;
      int other = 0;

      for (RecipeInfo info : RecipeManager.getRecipes().getRecipeList().values()) {
        switch (info.getOwner()) {
          case MINECRAFT:
            {
              mc++;
              break;
            }

          case RECIPEMANAGER:
            {
              rm++;
              break;
            }

          default:
            {
              other++;
            }
        }
      }

      Messages.CMD_RECIPES_USAGE.print(sender, null, "{command}", label);
      Messages.CMD_RECIPES_STATS_MC.print(sender, null, "{num}", mc);
      Messages.CMD_RECIPES_STATS_RM.print(sender, null, "{num}", rm);
      Messages.CMD_RECIPES_STATS_OTHER.print(sender, null, "{num}", other);
    }

    return true;
  }
  public void populateDBInfo() {

    Iterator<Table> it = Tables.iterator();
    String fileName, line;
    Pages P;
    TableList TL = null;
    Table T;
    int recCount, pageCount;

    while (it.hasNext()) {
      // for all the tables
      T = it.next();

      P = null;
      TL = null;
      fileName = pathForData + T.getTableName() + ".csv";
      recCount = 0;
      pageCount = 0;

      try {
        BufferedReader br = new BufferedReader(new FileReader(fileName));
        // create an empty page
        P = new Pages(recCount, pageSize, pageCount++);

        while ((line = br.readLine()) != null) {
          // process the line.
          if (P.checkSpace(line.length())) {
            P.insertRec(line);
            recCount += 1;
          } else {
            // save the current page
            TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace());
            T.insertPage(P);
            T.insertTableList(TL);
            /*System.out.println(T.noOfPages);
            for (String s : P.recordsInPage ){
            	System.out.println(s);
            }*/

            T.noOfPages += 1;

            // start a new page to store records.
            P = new Pages(recCount, pageSize, pageCount++);
            if (P.checkSpace(line.length())) {
              P.insertRec(line);
              recCount += 1;
            }
          }
        }
        br.close();
      } catch (FileNotFoundException e) {
        // Auto-generated catch block
        e.printStackTrace();
      } catch (IOException e) {
        // Auto-generated catch block
        e.printStackTrace();
      }

      // saving the last page
      if (P.getAvailableSpace() < pageSize) {
        TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace());
        T.insertPage(P);
        T.insertTableList(TL);
        /*System.out.println(T.noOfPages);
        for (String s : P.recordsInPage ){
        	System.out.println(s);
        }*/

        T.noOfPages += 1;
      }
    }
  }
  @FXML
  public void saveLinkAction(ActionEvent event) throws Exception {
    Map<String, Page> pageMap = Pages.getMap();

    String[] list = Pages.getSiteList();

    if (ch1.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[0]));
    }
    if (ch2.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[1]));
    }
    if (ch3.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[2]));
    }
    if (ch4.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[3]));
    }
    if (ch5.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[4]));
    }
    if (ch6.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[5]));
    }
    if (ch7.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[6]));
    }
    if (ch8.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[7]));
    }
    if (ch9.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[8]));
    }
    if (ch10.isSelected()) {
      Pages.addPage(_pageName, pageMap.get(list[9]));
    }

    returnToAddLink(event);
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    /*
    Views
    */
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    list = (ListView) findViewById(R.id.listView);
    webView = (WebView) findViewById(R.id.webView);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    tabs = (TabLayout) findViewById(R.id.tabs);

    /*
    Tabs
    */
    // Tabs are invisible
    hideTabs();

    // Listener to receive tab changes
    tabs.setOnTabSelectedListener(
        new TabLayout.OnTabSelectedListener() {

          // User selected new tab
          @Override
          public void onTabSelected(TabLayout.Tab tab) {

            // Find page
            for (Pages p : Pages.values()) {
              if (p.title.equals(actual.title)) {

                // Load URL in webview
                if (actual.url != null) actual.actualURL = p.url.split("\\|\\|")[tab.getPosition()];
                if (actual.localPage != null)
                  actual.actualAlternativeURL = actual.localPage.split("\\|\\|")[tab.getPosition()];
              }
            }
            if (actual.url != null) {
              webView.loadUrl(actual.actualURL);
            } else {
              if (actual.localPage != null)
                webView.loadUrl("file:///android_asset/" + actual.actualAlternativeURL);
            }
          }

          // We don't need this methods
          @Override
          public void onTabUnselected(TabLayout.Tab tab) {}

          @Override
          public void onTabReselected(TabLayout.Tab tab) {}
        });

    /*
    Drawer items
    */

    // Create list of all items for the drawer
    final ArrayList<Pages> pages = new ArrayList<Pages>();
    for (Pages p : Pages.values()) {
      if (p.menu == false) pages.add(p);
    }

    // Set actual page to the first item
    if (actual == null) {
      actual = pages.get(0);
    }

    /*
    White design
    */
    if (actual.useWhiteFont) {
      toolbar.setTitleTextColor(0xFFFFFFFF);
      tabs.setTabTextColors(0xFFFFFFFF, 0xFFFFFFFF);
    }

    /*
    Toolbar
    */
    toolbar.setTitle(actual.title);
    setSupportActionBar(toolbar);

    /*
    Admob
    */
    AdView mAdView = (AdView) findViewById(R.id.adView);

    // Hide AdView when not needed
    if (!actual.useAds) {
      mAdView.setVisibility(View.INVISIBLE);
    } else {
      // Init AdView when needed
      AdRequest adRequest = new AdRequest.Builder().build();
      mAdView.loadAd(adRequest);
    }

    /*
    Drawer
    */
    ActionBarDrawerToggle mDrawerToggle =
        new ActionBarDrawerToggle(
            this,
            drawerLayout,
            toolbar,
            R.string.navigation_drawer_open,
            R.string.navigation_drawer_close);
    drawerLayout.setDrawerListener(mDrawerToggle);
    drawerLayout.setDrawerShadow(R.drawable.shadow, Gravity.LEFT);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    mDrawerToggle.syncState();

    /*
    Pages to drawer
    */

    // Add pages to the drawer
    ListAdapter adapter = new ListAdapter(this, pages);
    list.setAdapter(adapter);
    adapter.notifyDataSetChanged();

    /*
    Webview
    */
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(
        new WebViewClient() {

          // Handle URL loading
          // Handle Intents (e.g. mailto:)
          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if ((url.contains("http:") || url.contains("https:"))
                && actual.homeDomains.contains(URI.create(url).getHost())) {
              view.loadUrl(url);
              return false;
            } else {
              Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
              PackageManager manager = getPackageManager();
              List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
              if (infos.size() > 0) {
                startActivity(intent);
              }
              return true;
            }
          }

          // Needed for correct back-button functionality
          @Override
          public void onPageFinished(WebView view, String url) {
            webView.clearHistory();
            super.onPageFinished(view, url);
          }

          // Handle loading errors
          @Override
          public void onReceivedError(
              WebView view, int errorCode, String description, String failingUrl) {
            if (actual.actualAlternativeURL != null)
              webView.loadUrl("file:///android_asset/" + actual.actualAlternativeURL);
            else view.loadData(actual.error, "text/html", actual.localEncoding);
          }
        });

    /*
    Site listener
    */

    // Change page via drawer
    list.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            changePage(pages.get(position));
          }
        });

    /*
    Update
    */

    // Load actual (first) page
    changePage(actual);
  }